diff --git a/frame/controller/quicksettingcontroller.cpp b/frame/controller/quicksettingcontroller.cpp
index d34e0ddf7..a76b214da 100644
--- a/frame/controller/quicksettingcontroller.cpp
+++ b/frame/controller/quicksettingcontroller.cpp
@@ -19,7 +19,6 @@
* along with this program. If not, see .
*/
#include "quicksettingcontroller.h"
-#include "quicksettingitem.h"
#include "pluginsitem.h"
#include "pluginmanagerinterface.h"
diff --git a/frame/item/components/fullquickitem.cpp b/frame/item/components/fullquickitem.cpp
deleted file mode 100644
index 0fdfafac9..000000000
--- a/frame/item/components/fullquickitem.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#include "fullquickitem.h"
-#include "pluginsiteminterface.h"
-
-FullQuickItem::FullQuickItem(PluginsItemInterface *const pluginInter, QWidget *parent)
- : QuickSettingItem(pluginInter, parent)
- , m_centerWidget(pluginInter->itemWidget(QUICK_ITEM_KEY))
- , m_centerParentWidget(nullptr)
- , m_effectWidget(new DBlurEffectWidget(this))
-{
- initUi();
- QMetaObject::invokeMethod(this, &FullQuickItem::resizeSelf, Qt::QueuedConnection);
-}
-
-FullQuickItem::~FullQuickItem()
-{
- if (m_centerWidget)
- m_centerWidget->setParent(nullptr);
-}
-
-void FullQuickItem::updateShow()
-{
- if (m_centerWidget)
- m_centerWidget->update();
-}
-
-void FullQuickItem::detachPlugin()
-{
- if (m_centerWidget)
- m_centerWidget->setParent(m_centerParentWidget);
-}
-
-QuickSettingItem::QuickSettingType FullQuickItem::type() const
-{
- return QuickSettingItem::QuickSettingType::Full;
-}
-
-bool FullQuickItem::eventFilter(QObject *obj, QEvent *event)
-{
- if (obj == m_centerWidget && event->type() == QEvent::Resize)
- resizeSelf();
-
- return QuickSettingItem::eventFilter(obj, event);
-}
-
-void FullQuickItem::initUi()
-{
- m_effectWidget->setMaskColor(QColor(239, 240, 245));
- m_effectWidget->setBlurRectXRadius(8);
- m_effectWidget->setBlurRectYRadius(8);
-
- // 如果图标不为空
- if (!m_centerWidget)
- return;
-
- m_centerWidget->setVisible(true);
- m_centerParentWidget = m_centerWidget->parentWidget();
-
- QHBoxLayout *layout = new QHBoxLayout(m_effectWidget);
- layout->setContentsMargins(0, 0, 0, 0);
- layout->setAlignment(Qt::AlignHCenter);
- layout->addWidget(m_centerWidget);
-
- QHBoxLayout *mainLayout = new QHBoxLayout(this);
- mainLayout->setContentsMargins(0, 0, 0, 0);
- mainLayout->addWidget(m_effectWidget);
-
- m_centerWidget->installEventFilter(this);
-}
-
-void FullQuickItem::resizeSelf()
-{
- if (!m_centerWidget)
- return;
-
- m_effectWidget->setFixedHeight(m_centerWidget->height());
- setFixedHeight(m_centerWidget->height());
-}
diff --git a/frame/item/components/fullquickitem.h b/frame/item/components/fullquickitem.h
deleted file mode 100644
index 16082a09e..000000000
--- a/frame/item/components/fullquickitem.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#ifndef FULLQUICKITEM_H
-#define FULLQUICKITEM_H
-
-#include "quicksettingitem.h"
-
-class FullQuickItem : public QuickSettingItem
-{
- Q_OBJECT
-
-public:
- FullQuickItem(PluginsItemInterface *const pluginInter, QWidget *parent = nullptr);
- ~FullQuickItem() override;
- void updateShow() override;
- void detachPlugin() override;
-
- QuickSettingType type() const override;
-
-protected:
- bool eventFilter(QObject *obj, QEvent *event) override;
-
-private:
- void initUi();
- void resizeSelf();
-
-private:
- QWidget *m_centerWidget;
- QWidget *m_centerParentWidget;
- DBlurEffectWidget *m_effectWidget;
-};
-
-#endif // FULLQUICKITEM_H
diff --git a/frame/item/components/multiquickitem.cpp b/frame/item/components/multiquickitem.cpp
deleted file mode 100644
index 38fdf1fb4..000000000
--- a/frame/item/components/multiquickitem.cpp
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#include "multiquickitem.h"
-#include "pluginsiteminterface.h"
-
-#include
-#include
-#include
-
-#define BGSIZE 36
-#define ICONWIDTH 24
-#define ICONHEIGHT 24
-
-static QSize expandSize = QSize(20, 20);
-
-MultiQuickItem::MultiQuickItem(PluginsItemInterface *const pluginInter, QWidget *parent)
- : QuickSettingItem(pluginInter, parent)
- , m_iconWidget(nullptr)
- , m_nameLabel(nullptr)
- , m_stateLabel(nullptr)
- , m_itemWidgetParent(nullptr)
-{
- initUi();
-}
-
-MultiQuickItem::~MultiQuickItem()
-{
- QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY);
- if (itemWidget)
- itemWidget->setParent(nullptr);
-}
-
-void MultiQuickItem::updateShow()
-{
- if (m_iconWidget && m_nameLabel && m_stateLabel) {
- m_iconWidget->update();
- m_nameLabel->setText(QFontMetrics(m_nameLabel->font()).elidedText(pluginItem()->pluginDisplayName(), Qt::TextElideMode::ElideRight, m_nameLabel->width()));
- m_stateLabel->setText(QFontMetrics(m_stateLabel->font()).elidedText(pluginItem()->description(), Qt::TextElideMode::ElideRight, m_stateLabel->width()));
- } else {
- QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY);
- if (itemWidget) {
- // 如果插件没有返回图标的显示,则获取插件的itemWidget
- itemWidget->update();
- }
- }
-}
-
-void MultiQuickItem::detachPlugin()
-{
- QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY);
- if (itemWidget && itemWidget->parentWidget() == this)
- itemWidget->setParent(m_itemWidgetParent);
-}
-
-QuickSettingItem::QuickSettingType MultiQuickItem::type() const
-{
- return QuickSettingItem::QuickSettingType::Multi;
-}
-
-bool MultiQuickItem::eventFilter(QObject *obj, QEvent *event)
-{
- if (m_iconWidget) {
- if (event->type() == QEvent::MouseButtonRelease) {
- if (obj->objectName() == "expandLabel") {
- // 如果是鼠标的按下事件
- QWidget *widget = pluginItem()->itemPopupApplet(QUICK_ITEM_KEY);
- if (!widget)
- return QuickSettingItem::eventFilter(obj, event);
-
- Q_EMIT requestShowChildWidget(widget);
-
- } else if (obj == this) {
- QStringList commandArgumend = pluginItem()->itemCommand(itemKey()).split(" ");
- if (commandArgumend.size() > 0) {
- QString command = commandArgumend.first();
- commandArgumend.removeFirst();
- QProcess::startDetached(command, commandArgumend);
- }
- }
- } else if (event->type() == QEvent::Resize) {
- QLabel *labelWidget = qobject_cast(obj);
- if (!labelWidget)
- return QuickSettingItem::eventFilter(obj, event);
-
- if (labelWidget == m_nameLabel) {
- labelWidget->setText(QFontMetrics(labelWidget->font()).elidedText(pluginItem()->pluginDisplayName(), Qt::TextElideMode::ElideRight, labelWidget->width()));
- } else if (labelWidget == m_stateLabel) {
- labelWidget->setText(QFontMetrics(labelWidget->font()).elidedText(pluginItem()->description(), Qt::TextElideMode::ElideRight, labelWidget->width()));
- }
- }
- }
-
- return QuickSettingItem::eventFilter(obj, event);
-}
-
-void MultiQuickItem::initUi()
-{
- QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY);
- if (pluginItem()->icon(DockPart::QuickPanel).isNull() && itemWidget) {
- m_itemWidgetParent = itemWidget->parentWidget();
- // 如果插件没有返回图标的显示,则获取插件的itemWidget
- QHBoxLayout *mainLayout = new QHBoxLayout(this);
- itemWidget->setVisible(true);
- itemWidget->setParent(this);
- mainLayout->setContentsMargins(0, 0, 0, 0);
- mainLayout->addWidget(itemWidget);
- } else {
- // 如果插件获取到插件区域的图标,则让其按照图标来组合显示
- // 如果是占用两排的插件,则用横向Layout
- QHBoxLayout *mainLayout = new QHBoxLayout(this);
- mainLayout->setContentsMargins(10, 0, 10, 0);
- mainLayout->setSpacing(0);
- mainLayout->addStretch(10);
- mainLayout->setAlignment(Qt::AlignCenter);
-
- // 添加图标
- QWidget *iconWidgetParent = new QWidget(this);
- QVBoxLayout *iconLayout = new QVBoxLayout(iconWidgetParent);
- iconLayout->setContentsMargins(0, 0, 0, 0);
- iconLayout->setSpacing(0);
- iconLayout->setAlignment(Qt::AlignCenter);
-
- m_iconWidget = new QuickIconWidget(pluginItem(), itemKey(), iconWidgetParent);
- m_iconWidget->setFixedSize(BGSIZE, BGSIZE);
- iconLayout->addWidget(m_iconWidget);
- mainLayout->addWidget(iconWidgetParent);
- mainLayout->addSpacing(10);
-
- // 添加中间的名称部分
- QWidget *textWidget = new QWidget(this);
- m_nameLabel = new QLabel(textWidget);
- m_stateLabel = new QLabel(textWidget);
- m_nameLabel->setObjectName("nameLabel");
- m_stateLabel->setObjectName("stateLabel");
-
- // 设置图标和文字的属性
- QFont nameFont = DFontSizeManager::instance()->t6();
- nameFont.setBold(true);
- QPalette pe;
- pe.setColor(QPalette::WindowText, Qt::black);
- m_nameLabel->setPalette(pe);
- m_stateLabel->setPalette(pe);
- m_nameLabel->setFont(nameFont);
- m_stateLabel->setFont(DFontSizeManager::instance()->t10());
- m_nameLabel->setText(pluginItem()->pluginDisplayName());
- m_stateLabel->setText(pluginItem()->description());
- m_nameLabel->installEventFilter(this);
- m_stateLabel->installEventFilter(this);
-
- QVBoxLayout *textLayout = new QVBoxLayout(textWidget);
- textLayout->setContentsMargins(0, 0, 0, 0);
- textLayout->setSpacing(0);
- textLayout->addWidget(m_nameLabel);
- textLayout->addWidget(m_stateLabel);
- textLayout->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
- mainLayout->addWidget(textWidget);
-
- // 添加右侧的展开按钮
- QWidget *expandWidgetParent = new QWidget(this);
- QVBoxLayout *expandLayout = new QVBoxLayout(expandWidgetParent);
- expandLayout->setSpacing(0);
- QLabel *expandLabel = new QLabel(expandWidgetParent);
- expandLabel->setObjectName("expandLabel");
- expandLabel->setPixmap(QPixmap(expandFileName()));
- expandLabel->setFixedSize(expandSize);
- expandLabel->setAutoFillBackground(true);
- expandLabel->installEventFilter(this);
- expandLayout->addWidget(expandLabel);
- pe.setBrush(QPalette::Window, Qt::transparent);
- expandLabel->setPalette(pe);
- mainLayout->addWidget(expandWidgetParent);
- }
-}
-
-QString MultiQuickItem::expandFileName() const
-{
- if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType)
- return QString(":/icons/resources/arrow-right-dark.svg");
-
- return QString(":/icons/resources/arrow-right.svg");
-}
-
-/**
- * @brief QuickIconWidget::QuickIconWidget
- * @param pluginInter
- * @param parent
- * 图标的widget
- */
-QuickIconWidget::QuickIconWidget(PluginsItemInterface *pluginInter, const QString &itemKey, QWidget *parent)
- : QWidget(parent)
- , m_pluginInter(pluginInter)
- , m_itemKey(itemKey)
-{
-}
-
-void QuickIconWidget::paintEvent(QPaintEvent *event)
-{
- QPixmap pixmapIcon = pluginIcon();
- if (pixmapIcon.isNull())
- return QWidget::paintEvent(event);
-
- pixmapIcon = pluginIcon(true);
- QPainter painter(this);
- painter.setRenderHint(QPainter::RenderHint::Antialiasing);
- painter.setPen(foregroundColor());
-
- DPalette dpa = DPaletteHelper::instance()->palette(this);
- QPainter pa(&pixmapIcon);
- pa.setCompositionMode(QPainter::CompositionMode_SourceIn);
- pa.fillRect(pixmapIcon.rect(), painter.pen().brush());
- // 如果是主图标,则显示阴影背景
- painter.save();
- painter.setPen(Qt::NoPen);
- painter.setBrush(dpa.brush(DPalette::ColorRole::Midlight));
- painter.drawEllipse(rect());
- painter.restore();
- QRect rctIcon((rect().width() - pixmapIcon.width()) / 2, (rect().height() - pixmapIcon.height()) / 2, pixmapIcon.width(), pixmapIcon.height());
- painter.drawPixmap(rctIcon, pixmapIcon);
-}
-
-QColor QuickIconWidget::foregroundColor() const
-{
- DPalette dpa = DPaletteHelper::instance()->palette(this);
- // 此处的颜色是临时获取的,后期需要和设计师确认,改成正规的颜色
- if (m_pluginInter->status() == PluginsItemInterface::PluginMode::Active)
- return dpa.color(DPalette::ColorGroup::Active, DPalette::ColorRole::Text);
-
- if (m_pluginInter->status() == PluginsItemInterface::PluginMode::Deactive)
- return dpa.color(DPalette::ColorGroup::Disabled, DPalette::ColorRole::Text);
-
- return dpa.color(DPalette::ColorGroup::Normal, DPalette::ColorRole::Text);
-}
-
-QPixmap QuickIconWidget::pluginIcon(bool contailGrab) const
-{
- QIcon icon = m_pluginInter->icon(DockPart::QuickPanel);
- if (icon.isNull() && contailGrab) {
- // 如果图标为空,就使用itemWidget的截图作为它的图标,这种一般是适用于老版本插件或者没有实现v23接口的插件
- QWidget *itemWidget = m_pluginInter->itemWidget(m_itemKey);
- if (itemWidget) {
- itemWidget->setFixedSize(ICONWIDTH, ICONHEIGHT);
- return itemWidget->grab();
- }
- return QPixmap();
- }
-
- // 获取icon接口返回的图标
- int pixmapWidth = width();
- int pixmapHeight = height();
- QList iconSizes = icon.availableSizes();
- if (iconSizes.size() > 0) {
- QSize size = iconSizes[0];
- if (size.isValid() && !size.isEmpty() && !size.isNull()) {
- pixmapWidth = size.width();
- pixmapHeight = size.height();
- }
- }
-
- return icon.pixmap(pixmapWidth, pixmapHeight);
-}
diff --git a/frame/item/components/multiquickitem.h b/frame/item/components/multiquickitem.h
deleted file mode 100644
index cd20f3125..000000000
--- a/frame/item/components/multiquickitem.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#ifndef MULTIQUICKITEM_H
-#define MULTIQUICKITEM_H
-
-#include
-
-class QuickIconWidget;
-class QWidget;
-
-class MultiQuickItem : public QuickSettingItem
-{
- Q_OBJECT
-
-public:
- MultiQuickItem(PluginsItemInterface *const pluginInter, QWidget *parent = nullptr);
- ~MultiQuickItem() override;
- void updateShow() override;
- void detachPlugin() override;
-
- QuickSettingType type() const override;
-
-protected:
- bool eventFilter(QObject *obj, QEvent *event) override;
-
-private:
- void initUi();
- QString expandFileName() const;
-
-private:
- QuickIconWidget *m_iconWidget;
- QLabel *m_nameLabel;
- QLabel *m_stateLabel;
- QWidget *m_itemWidgetParent;
-};
-
-/**
- * @brief The QuickIconWidget class
- * 图标的Widget
- */
-class QuickIconWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- explicit QuickIconWidget(PluginsItemInterface *pluginInter, const QString &itemKey, QWidget *parent = Q_NULLPTR);
-
-protected:
- void paintEvent(QPaintEvent *event) override;
-
-private:
- QColor foregroundColor() const;
- QPixmap pluginIcon(bool contailGrab = false) const;
-
-private:
- PluginsItemInterface *m_pluginInter;
- QString m_itemKey;
-};
-
-#endif // MULTIQUICKITEM_H
diff --git a/frame/item/components/singlequickitem.cpp b/frame/item/components/singlequickitem.cpp
deleted file mode 100644
index b75d66525..000000000
--- a/frame/item/components/singlequickitem.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#include "singlequickitem.h"
-#include "pluginsiteminterface.h"
-
-#include
-#include
-
-#define ICONHEIGHT 24
-#define ICONWIDTH 24
-#define TEXTHEIGHT 11
-
-SingleQuickItem::SingleQuickItem(PluginsItemInterface *const pluginInter, QWidget *parent)
- : QuickSettingItem(pluginInter, parent)
- , m_itemParentWidget(nullptr)
-{
- initUi();
-}
-
-SingleQuickItem::~SingleQuickItem()
-{
-}
-
-QuickSettingItem::QuickSettingType SingleQuickItem::type() const
-{
- return QuickSettingItem::QuickSettingType::Single;
-}
-
-void SingleQuickItem::mouseReleaseEvent(QMouseEvent *event)
-{
- Q_UNUSED(event);
- QStringList commandArgument = pluginItem()->itemCommand(itemKey()).split(" ");
- if (commandArgument.size() > 0) {
- QString command = commandArgument.first();
- commandArgument.removeFirst();
- QProcess::startDetached(command, commandArgument);
- }
-}
-
-void SingleQuickItem::resizeEvent(QResizeEvent *event)
-{
- updateShow();
- QuickSettingItem::resizeEvent(event);
-}
-
-void SingleQuickItem::initUi()
-{
- QWidget *topWidget = iconWidget(this);
- QVBoxLayout *layout = new QVBoxLayout(this);
- layout->addWidget(topWidget);
- installEventFilter(this);
-}
-
-QWidget *SingleQuickItem::iconWidget(QWidget *parent)
-{
- // 显示图标的窗体
- QWidget *widget = new QWidget(parent);
- bool childIsEmpty = true;
- QIcon icon = pluginItem()->icon(DockPart::QuickPanel);
- if (icon.isNull()) {
- // 如果图标为空,则将获取itemWidget作为它的显示
- QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY);
- if (itemWidget) {
- m_itemParentWidget = itemWidget->parentWidget();
- QHBoxLayout *layout = new QHBoxLayout(widget);
- layout->setContentsMargins(0, 0, 0 ,0);
- itemWidget->setParent(widget);
- layout->addWidget(itemWidget);
- itemWidget->setVisible(true);
- childIsEmpty = false;
- }
- }
-
- if (childIsEmpty) {
- // 如果没有子窗体,则需要添加下方的文字
- QVBoxLayout *layout = new QVBoxLayout(widget);
- layout->setAlignment(Qt::AlignVCenter);
- layout->setContentsMargins(0, 0, 0, 0);
- layout->setSpacing(0);
- QLabel *imageLabel = new QLabel(widget);
- imageLabel->setObjectName("imageLabel");
- imageLabel->setFixedHeight(ICONHEIGHT);
- imageLabel->setAlignment(Qt::AlignCenter);
-
- QLabel *labelText = new QLabel(widget);
- labelText->setObjectName("textLabel");
- labelText->setFixedHeight(TEXTHEIGHT);
- updatePluginName(labelText);
- labelText->setAlignment(Qt::AlignCenter);
- labelText->setFont(DFontSizeManager::instance()->t10());
- layout->addWidget(imageLabel);
- layout->addSpacing(7);
- layout->addWidget(labelText);
- }
-
- setProperty("paint", childIsEmpty);
-
- return widget;
-}
-
-QPixmap SingleQuickItem::pixmap() const
-{
- // 如果快捷面板区域的图标为空,那么就获取itemWidget的截图
- QIcon icon = pluginItem()->icon(DockPart::QuickPanel);
- if (icon.isNull())
- return QPixmap();
-
- int pixmapWidth = width();
- int pixmapHeight = height();
- QList iconSizes = icon.availableSizes();
- if (iconSizes.size() > 0) {
- QSize size = iconSizes[0];
- if (size.isValid() && !size.isEmpty() && !size.isNull()) {
- pixmapWidth = size.width();
- pixmapHeight = size.height();
- }
- }
-
- return icon.pixmap(pixmapWidth / qApp->devicePixelRatio(), pixmapHeight / qApp->devicePixelRatio());
-}
-
-QLabel *SingleQuickItem::findChildLabel(QWidget *parent, const QString &childObjectName) const
-{
- QList childrends = parent->children();
- for (QObject *child : childrends) {
- QWidget *widget = qobject_cast(child);
- if (!widget)
- continue;
-
- QLabel *label = qobject_cast(child);
- if (label && widget->objectName() == childObjectName)
- return label;
-
- label = findChildLabel(widget, childObjectName);
- if (label)
- return label;
- }
-
- return nullptr;
-}
-
-void SingleQuickItem::updatePluginName(QLabel *textLabel)
-{
- if (!textLabel)
- return;
-
- QString text = pluginItem()->description();
- if (text.isEmpty())
- text = pluginItem()->pluginDisplayName();
- QFontMetrics ftm(textLabel->font());
- text = ftm.elidedText(text, Qt::TextElideMode::ElideRight, textLabel->width());
- textLabel->setText(text);
-}
-
-void SingleQuickItem::updateShow()
-{
- if (property("paint").toBool()) {
- QLabel *imageLabel = findChildLabel(this, "imageLabel");
- if (imageLabel) {
- // 更新图像
- imageLabel->setPixmap(pixmap());
- }
- updatePluginName(findChildLabel(this, "textLabel"));
- } else {
- QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY);
- if (itemWidget)
- itemWidget->update();
- }
-}
-
-void SingleQuickItem::detachPlugin()
-{
- QWidget *itemWidget = pluginItem()->itemWidget(QUICK_ITEM_KEY);
- if (itemWidget && !property("paint").toBool())
- itemWidget->setParent(m_itemParentWidget);
-}
diff --git a/frame/item/components/singlequickitem.h b/frame/item/components/singlequickitem.h
deleted file mode 100644
index dd0a6f657..000000000
--- a/frame/item/components/singlequickitem.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#ifndef SINGLEQUICKITEM_H
-#define SINGLEQUICKITEM_H
-
-#include
-
-class SingleQuickItem : public QuickSettingItem
-{
- Q_OBJECT
-
-public:
- SingleQuickItem(PluginsItemInterface *const pluginInter, QWidget *parent = nullptr);
- ~SingleQuickItem() override;
-
- QuickSettingType type() const override;
- void updateShow() override;
- void detachPlugin() override;
-
-protected:
- void mouseReleaseEvent(QMouseEvent *event) override;
- void resizeEvent(QResizeEvent *event) override;
-
-private:
- void initUi();
- QWidget *iconWidget(QWidget *parent);
- QPixmap pixmap() const;
- QLabel *findChildLabel(QWidget *parent, const QString &childObjectName) const;
- void updatePluginName(QLabel *textLabel);
-
-private:
- QWidget *m_itemParentWidget;
-};
-
-#endif // SINGLEQUICKITEM_H
diff --git a/frame/item/quicksettingitem.cpp b/frame/item/quicksettingitem.cpp
deleted file mode 100644
index f3c126088..000000000
--- a/frame/item/quicksettingitem.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#include "quicksettingitem.h"
-#include "pluginsiteminterface.h"
-#include "imageutil.h"
-#include "quicksettingcontroller.h"
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#define ICONWIDTH 24
-#define ICONHEIGHT 24
-#define ICONSPACE 10
-#define RADIUS 8
-#define FONTSIZE 10
-
-#define BGWIDTH 128
-#define BGSIZE 36
-#define MARGINLEFTSPACE 10
-#define OPENICONSIZE 12
-#define MARGINRIGHTSPACE 9
-
-QuickSettingItem::QuickSettingItem(PluginsItemInterface *const pluginInter, QWidget *parent)
- : DockItem(parent)
- , m_pluginInter(pluginInter)
- , m_itemKey(QuickSettingController::instance()->itemKey(pluginInter))
-{
- setAcceptDrops(true);
- this->installEventFilter(this);
-}
-
-QuickSettingItem::~QuickSettingItem()
-{
-}
-
-PluginsItemInterface *QuickSettingItem::pluginItem() const
-{
- return m_pluginInter;
-}
-
-DockItem::ItemType QuickSettingItem::itemType() const
-{
- return DockItem::QuickSettingPlugin;
-}
-
-const QPixmap QuickSettingItem::dragPixmap()
-{
- return grab();
-}
-
-const QString QuickSettingItem::itemKey() const
-{
- return m_itemKey;
-}
-
-void QuickSettingItem::paintEvent(QPaintEvent *e)
-{
- QWidget::paintEvent(e);
- QPainter painter(this);
- painter.setRenderHint(QPainter::RenderHint::Antialiasing);
- painter.setPen(foregroundColor());
- QPainterPath path;
- path.addRoundedRect(rect(), RADIUS, RADIUS);
- painter.setClipPath(path);
- // 绘制背景色
- DPalette dpa = DPaletteHelper::instance()->palette(this);
- painter.fillRect(rect(), Qt::white);
-}
-
-QColor QuickSettingItem::foregroundColor() const
-{
- DPalette dpa = DPaletteHelper::instance()->palette(this);
- // 此处的颜色是临时获取的,后期需要和设计师确认,改成正规的颜色
- if (m_pluginInter->status() == PluginsItemInterface::PluginMode::Active)
- return dpa.color(DPalette::ColorGroup::Active, DPalette::ColorRole::Text);
-
- if (m_pluginInter->status() == PluginsItemInterface::PluginMode::Deactive)
- return dpa.color(DPalette::ColorGroup::Disabled, DPalette::ColorRole::Text);
-
- return dpa.color(DPalette::ColorGroup::Normal, DPalette::ColorRole::Text);
-}
diff --git a/frame/item/quicksettingitem.h b/frame/item/quicksettingitem.h
deleted file mode 100644
index a0af17691..000000000
--- a/frame/item/quicksettingitem.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#ifndef QUICKSETTINGITEM_H
-#define QUICKSETTINGITEM_H
-
-#include "dockitem.h"
-
-class PluginsItemInterface;
-class QuickIconWidget;
-
-class QuickSettingItem : public DockItem
-{
- Q_OBJECT
-
-public:
- enum class QuickSettingType {
- Single = 1, // 插件的UI显示单列
- Multi = 2, // 插件的UI显示双列,例如网络和蓝牙等
- Full = 4 // 插件的UI整行显示,例如声音,亮度、音乐播放等
- };
-
-public:
- QuickSettingItem(PluginsItemInterface *const pluginInter, QWidget *parent = nullptr);
- ~QuickSettingItem() override;
- PluginsItemInterface *pluginItem() const;
- ItemType itemType() const override;
- virtual const QPixmap dragPixmap();
- virtual void updateShow() {}
- virtual void detachPlugin() {}
- const QString itemKey() const;
-
- virtual QuickSettingType type() const = 0;
-
-Q_SIGNALS:
- void requestShowChildWidget(QWidget *);
-
-protected:
- void paintEvent(QPaintEvent *e) override;
- QColor foregroundColor() const;
-
-private:
- PluginsItemInterface *m_pluginInter;
- QString m_itemKey;
-};
-
-#endif // QUICKSETTINGITEM_H
diff --git a/frame/pluginadapter/pluginadapter.cpp b/frame/pluginadapter/pluginadapter.cpp
deleted file mode 100644
index 76c683215..000000000
--- a/frame/pluginadapter/pluginadapter.cpp
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#include "pluginadapter.h"
-
-#include
-
-#define ICONWIDTH 24
-#define ICONHEIGHT 24
-
-PluginAdapter::PluginAdapter(PluginsItemInterface_V20 *pluginInter, QPluginLoader *pluginLoader)
- : m_pluginInter(pluginInter)
- , m_pluginLoader(pluginLoader)
-{
-}
-
-PluginAdapter::~PluginAdapter()
-{
- delete m_pluginInter;
-}
-
-const QString PluginAdapter::pluginName() const
-{
- return m_pluginInter->pluginName();
-}
-
-const QString PluginAdapter::pluginDisplayName() const
-{
- return m_pluginInter->pluginDisplayName();
-}
-
-void PluginAdapter::init(PluginProxyInterface *proxyInter)
-{
- m_pluginInter->init(proxyInter);
-}
-
-QWidget *PluginAdapter::itemWidget(const QString &itemKey)
-{
- return m_pluginInter->itemWidget(itemKey);
-}
-
-QWidget *PluginAdapter::itemTipsWidget(const QString &itemKey)
-{
- return m_pluginInter->itemTipsWidget(itemKey);
-}
-
-QWidget *PluginAdapter::itemPopupApplet(const QString &itemKey)
-{
- return m_pluginInter->itemPopupApplet(itemKey);
-}
-
-const QString PluginAdapter::itemCommand(const QString &itemKey)
-{
- return m_pluginInter->itemCommand(itemKey);
-}
-
-const QString PluginAdapter::itemContextMenu(const QString &itemKey)
-{
- return m_pluginInter->itemContextMenu(itemKey);
-}
-
-void PluginAdapter::invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked)
-{
- m_pluginInter->invokedMenuItem(itemKey, menuId, checked);
-}
-
-int PluginAdapter::itemSortKey(const QString &itemKey)
-{
- return m_pluginInter->itemSortKey(itemKey);
-}
-
-void PluginAdapter::setSortKey(const QString &itemKey, const int order)
-{
- m_pluginInter->setSortKey(itemKey, order);
-}
-
-bool PluginAdapter::itemAllowContainer(const QString &itemKey)
-{
- return m_pluginInter->itemAllowContainer(itemKey);
-}
-
-bool PluginAdapter::itemIsInContainer(const QString &itemKey)
-{
- return m_pluginInter->itemIsInContainer(itemKey);
-}
-
-void PluginAdapter::setItemIsInContainer(const QString &itemKey, const bool container)
-{
- m_pluginInter->setItemIsInContainer(itemKey, container);
-}
-
-bool PluginAdapter::pluginIsAllowDisable()
-{
- return m_pluginInter->pluginIsAllowDisable();
-}
-
-bool PluginAdapter::pluginIsDisable()
-{
- return m_pluginInter->pluginIsDisable();
-}
-
-void PluginAdapter::pluginStateSwitched()
-{
- m_pluginInter->pluginStateSwitched();
-}
-
-void PluginAdapter::displayModeChanged(const Dock::DisplayMode displayMode)
-{
- m_pluginInter->displayModeChanged(displayMode);
-}
-
-void PluginAdapter::positionChanged(const Dock::Position position)
-{
- m_pluginInter->positionChanged(position);
-}
-
-void PluginAdapter::refreshIcon(const QString &itemKey)
-{
- m_pluginInter->refreshIcon(itemKey);
-}
-
-void PluginAdapter::pluginSettingsChanged()
-{
- m_pluginInter->pluginSettingsChanged();
-}
-
-PluginsItemInterface::PluginType PluginAdapter::type()
-{
- switch (m_pluginInter->type()) {
- case PluginsItemInterface_V20::PluginType::Fixed:
- return PluginsItemInterface::PluginType::Fixed;
- case PluginsItemInterface_V20::PluginType::Normal:
- return PluginsItemInterface::PluginType::Normal;
- }
- return PluginsItemInterface::PluginType::Normal;
-}
-
-PluginsItemInterface::PluginSizePolicy PluginAdapter::pluginSizePolicy() const
-{
- switch (m_pluginInter->pluginSizePolicy()) {
- case PluginsItemInterface_V20::PluginSizePolicy::Custom:
- return PluginsItemInterface::PluginSizePolicy::Custom;
- case PluginsItemInterface_V20::PluginSizePolicy::System:
- return PluginsItemInterface::PluginSizePolicy::System;
- }
- return PluginsItemInterface::PluginSizePolicy::Custom;
-}
-
-QIcon PluginAdapter::icon(const DockPart &dockPart, DGuiApplicationHelper::ColorType themeType)
-{
- QWidget *itemWidget = m_pluginInter->itemWidget(m_itemKey);
- if (!itemWidget)
- return QIcon();
-
- switch (dockPart) {
- case DockPart::QuickPanel:
- case DockPart::SystemPanel: {
- // 如果是托盘插件,则让他返回空图标,直接将QWidget展示
- if (m_pluginLoader->fileName().contains(TRAY_PATH))
- return QIcon();
-
- // 如果图标为空,就使用itemWidget的截图作为它的图标,这种一般是适用于老版本插件或者没有实现v23接口的插件
- QSize oldSize = itemWidget->size();
- itemWidget->setFixedSize(ICONWIDTH / qApp->devicePixelRatio(), ICONHEIGHT / qApp->devicePixelRatio());
- QPixmap pixmap = itemWidget->grab();
- itemWidget->setFixedSize(oldSize);
- return pixmap;
- }
- default: break;
- }
-
- return QIcon();
-}
-
-PluginsItemInterface::PluginMode PluginAdapter::status() const
-{
- return PluginMode::Active;
-}
-
-QString PluginAdapter::description() const
-{
- return m_pluginInter->pluginDisplayName();
-}
-
-PluginFlags PluginAdapter::flags() const
-{
- if (m_pluginLoader->fileName().contains(TRAY_PATH))
- return PluginFlag::Type_Tray | PluginFlag::Attribute_CanDrag | PluginFlag::Attribute_CanInsert;
-
- return PluginsItemInterface::flags();
-}
-
-void PluginAdapter::setItemKey(const QString &itemKey)
-{
- m_itemKey = itemKey;
-}
diff --git a/frame/pluginadapter/pluginadapter.h b/frame/pluginadapter/pluginadapter.h
deleted file mode 100644
index 04dbb3c28..000000000
--- a/frame/pluginadapter/pluginadapter.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#ifndef PLUGINADAPTER_H
-#define PLUGINADAPTER_H
-
-#include "pluginsiteminterface.h"
-#include "pluginsiteminterface_v20.h"
-
-#include
-
-/** 适配器,当加载到v20插件的时候,通过该接口来转成v23接口的插件
- * @brief The PluginAdapter class
- */
-
-class PluginAdapter : public QObject, public PluginsItemInterface
-{
- Q_OBJECT
- Q_INTERFACES(PluginsItemInterface)
-
-public:
- PluginAdapter(PluginsItemInterface_V20 *pluginInter, QPluginLoader *pluginLoader);
- ~PluginAdapter();
-
- const QString pluginName() const override;
- const QString pluginDisplayName() const override;
- void init(PluginProxyInterface *proxyInter) override;
- QWidget *itemWidget(const QString &itemKey) override;
-
- QWidget *itemTipsWidget(const QString &itemKey) override;
- QWidget *itemPopupApplet(const QString &itemKey) override;
- const QString itemCommand(const QString &itemKey) override;
- const QString itemContextMenu(const QString &itemKey) override;
- void invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked) override;
- int itemSortKey(const QString &itemKey) override;
- void setSortKey(const QString &itemKey, const int order) override;
- bool itemAllowContainer(const QString &itemKey) override;
- bool itemIsInContainer(const QString &itemKey) override;
- void setItemIsInContainer(const QString &itemKey, const bool container) override;
-
- bool pluginIsAllowDisable() override;
- bool pluginIsDisable() override;
- void pluginStateSwitched() override;
- void displayModeChanged(const Dock::DisplayMode displayMode) override;
- void positionChanged(const Dock::Position position) override;
- void refreshIcon(const QString &itemKey) override;
- void pluginSettingsChanged() override;
- PluginType type() override;
- PluginSizePolicy pluginSizePolicy() const override;
-
- QIcon icon(const DockPart &dockPart, DGuiApplicationHelper::ColorType themeType) override;
- PluginMode status() const override;
- QString description() const override;
- PluginFlags flags() const override;
-
- void setItemKey(const QString &itemKey);
-
-private:
- PluginsItemInterface_V20 *m_pluginInter;
- QString m_itemKey;
- QPluginLoader *m_pluginLoader;
-};
-
-#endif // PLUGINADAPTER_H
diff --git a/frame/pluginadapter/pluginsiteminterface_v20.h b/frame/pluginadapter/pluginsiteminterface_v20.h
deleted file mode 100644
index 913aa0e9d..000000000
--- a/frame/pluginadapter/pluginsiteminterface_v20.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef PLUGINSITEMINTERFACE_V20_H
-#define PLUGINSITEMINTERFACE_V20_H
-
-#include "pluginproxyinterface.h"
-
-#include
-#include
-
-///
-/// \brief The PluginsItemInterface_V20 class
-/// the dock plugins item interface, all dock plugins should
-/// inheirt this class and override all pure virtual function.
-///
-class PluginsItemInterface_V20
-{
-public:
- enum PluginType {
- Normal,
- Fixed
- };
-
- /**
- * @brief Plugin size policy
- */
- enum PluginSizePolicy {
- System = 1 << 0, // Follow the system
- Custom = 1 << 1 // The custom
- };
-
- ///
- /// \brief ~PluginsItemInterface_V20
- /// DON'T try to delete m_proxyInter.
- ///
- virtual ~PluginsItemInterface_V20() {}
-
- ///
- /// \brief pluginName
- /// tell dock the unique plugin id
- /// \return
- ///
- virtual const QString pluginName() const = 0;
- virtual const QString pluginDisplayName() const { return QString(); }
-
- ///
- /// \brief init
- /// init your plugins, you need to save proxyInter to m_proxyInter
- /// member variable. but you shouldn't free this pointer.
- /// \param proxyInter
- /// DON'T try to delete this pointer.
- ///
- virtual void init(PluginProxyInterface *proxyInter) = 0;
- ///
- /// \brief itemWidget
- /// your plugin item widget, each item should have a unique key.
- /// \param itemKey
- /// your widget' unqiue key.
- /// \return
- ///
- virtual QWidget *itemWidget(const QString &itemKey) = 0;
-
- ///
- /// \brief itemTipsWidget
- /// override this function if your item want to have a tips.
- /// the tips will shown when user hover your item.
- /// nullptr will be ignored.
- /// \param itemKey
- /// \return
- ///
- virtual QWidget *itemTipsWidget(const QString &itemKey) {Q_UNUSED(itemKey); return nullptr;}
- ///
- /// \brief itemPopupApplet
- /// override this function if your item wants to have an popup applet.
- /// the popup applet will shown when user click your item.
- ///
- /// Tips:
- /// dock should receive mouse press/release event to check user mouse operate,
- /// if your item filter mouse event, this function will not be called.
- /// so if you override mouse event and want to use popup applet, you
- /// should pass event to your parent use QWidget::someEvent(e);
- /// \param itemKey
- /// \return
- ///
- virtual QWidget *itemPopupApplet(const QString &itemKey) {Q_UNUSED(itemKey); return nullptr;}
- ///
- /// \brief itemCommand
- /// execute spec command when user clicked your item.
- /// ensure your command do not get user input.
- ///
- /// empty string will be ignored.
- /// \param itemKey
- /// \return
- ///
- virtual const QString itemCommand(const QString &itemKey) {Q_UNUSED(itemKey); return QString();}
-
- ///
- /// \brief itemContextMenu
- /// context menu is shown when RequestPopupMenu called.
- /// \param itemKey
- /// \return
- ///
- virtual const QString itemContextMenu(const QString &itemKey) {Q_UNUSED(itemKey); return QString();}
- ///
- /// \brief invokedMenuItem
- /// call if context menu item is clicked
- /// \param itemKey
- /// \param itemId
- /// menu item id
- /// \param checked
- ///
- virtual void invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked) {Q_UNUSED(itemKey); Q_UNUSED(menuId); Q_UNUSED(checked);}
-
- ///
- /// \brief itemSortKey
- /// tell dock where your item wants to put on.
- ///
- /// this index is start from 1 and
- /// 0 for left side
- /// -1 for right side
- /// \param itemKey
- /// \return
- ///
- virtual int itemSortKey(const QString &itemKey) {Q_UNUSED(itemKey); return 1;}
- ///
- /// \brief setSortKey
- /// save your item new position
- /// sort key will be changed when plugins order
- /// changed(by user drag-drop)
- /// \param itemKey
- /// \param order
- ///
- virtual void setSortKey(const QString &itemKey, const int order) {Q_UNUSED(itemKey); Q_UNUSED(order);}
-
- ///
- /// \brief itemAllowContainer
- /// tell dock is your item allow to move into container
- ///
- /// if your item placed into container, popup tips and popup
- /// applet will be disabled.
- /// \param itemKey
- /// \return
- ///
- virtual bool itemAllowContainer(const QString &itemKey) {Q_UNUSED(itemKey); return false;}
- ///
- /// \brief itemIsInContainer
- /// tell dock your item is in container, this function
- /// called at item init and if your item enable container.
- /// \param itemKey
- /// \return
- ///
- virtual bool itemIsInContainer(const QString &itemKey) {Q_UNUSED(itemKey); return false;}
- ///
- /// \brief setItemIsInContainer
- /// save your item new state.
- /// this function called when user drag out your item from
- /// container or user drop item into container(if your item
- /// allow drop into container).
- /// \param itemKey
- /// \param container
- ///
- virtual void setItemIsInContainer(const QString &itemKey, const bool container) {Q_UNUSED(itemKey); Q_UNUSED(container);}
-
- virtual bool pluginIsAllowDisable() { return false; }
- virtual bool pluginIsDisable() { return false; }
- virtual void pluginStateSwitched() {}
-
- ///
- /// \brief displayModeChanged
- /// override this function to receive display mode changed signal
- /// \param displayMode
- ///
- virtual void displayModeChanged(const Dock::DisplayMode displayMode) {Q_UNUSED(displayMode);}
- ///
- /// \brief positionChanged
- /// override this function to receive dock position changed signal
- /// \param position
- ///
- virtual void positionChanged(const Dock::Position position) {Q_UNUSED(position);}
-
- ///
- /// \brief refreshIcon
- /// refresh item icon, its triggered when system icon theme changed.
- /// \param itemKey
- /// item key
- ///
- virtual void refreshIcon(const QString &itemKey) { Q_UNUSED(itemKey); }
-
- ///
- /// \brief displayMode
- /// get current dock display mode
- /// \return
- ///
- inline Dock::DisplayMode displayMode() const
- {
- return qApp->property(PROP_DISPLAY_MODE).value();
- }
-
- ///
- /// \brief position
- /// get current dock position
- /// \return
- ///
- inline Dock::Position position() const
- {
- return qApp->property(PROP_POSITION).value();
- }
-
- ///
- /// \brief settingsChanged
- /// override this function to receive plugin settings changed signal(DeepinSync)
- ///
- virtual void pluginSettingsChanged() {}
-
- ///
- /// \brief type
- /// default plugin add dock right,fixed plugin add to dock fixed area
- ///
- virtual PluginType type() { return Normal; }
-
- ///
- /// \brief plugin size policy
- /// default plugin size policy
- ///
- virtual PluginSizePolicy pluginSizePolicy() const { return System; }
-
-protected:
- ///
- /// \brief m_proxyInter
- /// NEVER delete this object.
- ///
- PluginProxyInterface *m_proxyInter = nullptr;
-};
-
-QT_BEGIN_NAMESPACE
-
-#define ModuleInterfaceV20_iid "com.deepin.dock.PluginsItemInterface"
-
-Q_DECLARE_INTERFACE(PluginsItemInterface_V20, ModuleInterfaceV20_iid)
-QT_END_NAMESPACE
-
-#endif // PLUGINSITEMINTERFACE_H
diff --git a/frame/window/pluginchildpage.cpp b/frame/window/pluginchildpage.cpp
deleted file mode 100644
index 06fdec370..000000000
--- a/frame/window/pluginchildpage.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#include "pluginchildpage.h"
-
-#include
-#include
-#include
-
-PluginChildPage::PluginChildPage(QWidget *parent)
- : QWidget(parent)
- , m_headerWidget(new QWidget(this))
- , m_back(new QLabel(m_headerWidget))
- , m_title(new QLabel(m_headerWidget))
- , m_container(new QWidget(this))
- , m_topWidget(nullptr)
- , m_containerLayout(new QVBoxLayout(m_container))
- , m_isBack(false)
-{
- initUi();
- m_back->installEventFilter(this);
-}
-
-PluginChildPage::~PluginChildPage()
-{
-}
-
-void PluginChildPage::pushWidget(QWidget *widget)
-{
- // 首先将界面其他的窗体移除
- for (int i = m_containerLayout->count() - 1; i >= 0; i--) {
- QLayoutItem *item = m_containerLayout->itemAt(i);
- item->widget()->removeEventFilter(this);
- item->widget()->hide();
- m_containerLayout->removeItem(item);
- }
- m_topWidget = widget;
- widget->installEventFilter(this);
- m_containerLayout->addWidget(widget);
- widget->show();
- m_isBack = false;
- QMetaObject::invokeMethod(this, &PluginChildPage::resetHeight, Qt::QueuedConnection);
-}
-
-void PluginChildPage::setTitle(const QString &text)
-{
- m_title->setText(text);
-}
-
-void PluginChildPage::setCanBack(bool canBack)
-{
- m_back->setVisible(canBack);
-}
-
-bool PluginChildPage::isBack()
-{
- return m_isBack;
-}
-
-void PluginChildPage::initUi()
-{
- m_back->setFixedWidth(24);
- m_title->setAlignment(Qt::AlignCenter);
- QHBoxLayout *headerLayout = new QHBoxLayout(m_headerWidget);
- headerLayout->setContentsMargins(11, 12, 24 + 11, 12);
- headerLayout->setSpacing(0);
- headerLayout->addWidget(m_back);
- headerLayout->addWidget(m_title);
- m_headerWidget->setFixedHeight(48);
-
- QVBoxLayout *mainLayout = new QVBoxLayout(this);
- mainLayout->setContentsMargins(0, 0, 0, 0);
- mainLayout->setSpacing(0);
-
- mainLayout->addWidget(m_headerWidget);
- mainLayout->addWidget(m_container);
- m_containerLayout->setContentsMargins(11, 0, 11, 0);
- m_containerLayout->setSpacing(0);
-}
-
-bool PluginChildPage::eventFilter(QObject *watched, QEvent *event)
-{
- if (watched == m_back && event->type() == QEvent::MouseButtonRelease) {
- m_isBack = true;
- Q_EMIT back();
- return true;
- }
- if (watched == m_topWidget) {
- if (event->type() == QEvent::Hide) {
- Q_EMIT closeSelf();
- return true;
- }
- if (event->type() == QEvent::Resize)
- resetHeight();
- }
- return QWidget::eventFilter(watched, event);
-}
-
-void PluginChildPage::resetHeight()
-{
- QMargins m = m_containerLayout->contentsMargins();
- m_container->setFixedHeight(m.top() + m.bottom() + m_topWidget->height());
- setFixedHeight(m_headerWidget->height() + m_container->height());
-}
diff --git a/frame/window/pluginchildpage.h b/frame/window/pluginchildpage.h
deleted file mode 100644
index cc8edc7a7..000000000
--- a/frame/window/pluginchildpage.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
- *
- * Author: donghualin
- *
- * Maintainer: donghualin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-#ifndef PLUGINCHILDPAGE_H
-#define PLUGINCHILDPAGE_H
-
-#include
-
-class QLabel;
-class QVBoxLayout;
-
-class PluginChildPage : public QWidget
-{
- Q_OBJECT
-
-public:
- explicit PluginChildPage(QWidget *parent);
- ~PluginChildPage() override;
- void pushWidget(QWidget *widget);
- void setTitle(const QString &text);
- void setCanBack(bool canBack);
- bool isBack();
-
-Q_SIGNALS:
- void back();
- void closeSelf();
-
-protected:
- bool eventFilter(QObject *watched, QEvent *event) override;
-
-private:
- void initUi();
- void resetHeight();
-
-private:
- QWidget *m_headerWidget;
- QLabel *m_back;
- QLabel *m_title;
- QWidget *m_container;
- QWidget *m_topWidget;
- QVBoxLayout *m_containerLayout;
- bool m_isBack;
-};
-
-#endif // PLUGINCHILDPAGE_H
diff --git a/frame/window/quickpluginwindow.cpp b/frame/window/quickpluginwindow.cpp
index c36ba37cf..3579db679 100644
--- a/frame/window/quickpluginwindow.cpp
+++ b/frame/window/quickpluginwindow.cpp
@@ -20,7 +20,6 @@
*/
#include "quickpluginwindow.h"
#include "quicksettingcontroller.h"
-#include "quicksettingitem.h"
#include "pluginsiteminterface.h"
#include "appdrag.h"
#include "quickpluginmodel.h"