diff --git a/configs/com.deepin.dde.dock.dconfig.json b/configs/com.deepin.dde.dock.dconfig.json index 6b1f34a47..da2b97c2e 100644 --- a/configs/com.deepin.dde.dock.dconfig.json +++ b/configs/com.deepin.dde.dock.dconfig.json @@ -17,7 +17,7 @@ "visibility":"public" }, "Dock_Quick_Plugins": { - "value": ["power", "network", "shutdown", "trash"], + "value": ["power", "network", "shutdown", "trash", "show-desktop", "multitasking"], "serial": 0, "flags": [], "name": "显示在任务栏上的快捷插件", diff --git a/plugins/multitasking/multitaskingplugin.cpp b/plugins/multitasking/multitaskingplugin.cpp index 46ff2e64b..4be4fe2e8 100644 --- a/plugins/multitasking/multitaskingplugin.cpp +++ b/plugins/multitasking/multitaskingplugin.cpp @@ -11,7 +11,6 @@ #include -#define PLUGIN_STATE_KEY "enable" DGUI_USE_NAMESPACE using namespace Dock; @@ -121,7 +120,7 @@ void MultitaskingPlugin::invokedMenuItem(const QString &itemKey, const QString & .arg(1) .call(); } else if (menuId == "remove") { - pluginStateSwitched(); + m_proxyInter->itemRemoved(this, PLUGIN_KEY); } } @@ -153,5 +152,5 @@ PluginsItemInterface::PluginType MultitaskingPlugin::type() PluginFlags MultitaskingPlugin::flags() const { - return PluginFlag::Type_Fixed | PluginFlag::Attribute_ForceDock; -} + return PluginFlag::Type_Fixed | Attribute_CanSetting; +} \ No newline at end of file diff --git a/plugins/show-desktop/showdesktopplugin.cpp b/plugins/show-desktop/showdesktopplugin.cpp index a8a6576c4..eea14d1a1 100644 --- a/plugins/show-desktop/showdesktopplugin.cpp +++ b/plugins/show-desktop/showdesktopplugin.cpp @@ -9,11 +9,9 @@ #include #include -#define PLUGIN_STATE_KEY "enable" using namespace Dock; ShowDesktopPlugin::ShowDesktopPlugin(QObject *parent) : QObject(parent) - , m_pluginLoaded(false) , m_showDesktopWidget(nullptr) , m_tipsLabel(new TipsWidget) { @@ -51,21 +49,8 @@ void ShowDesktopPlugin::init(PluginProxyInterface *proxyInter) { m_proxyInter = proxyInter; - if (!pluginIsDisable()) { - loadPlugin(); - } -} - -void ShowDesktopPlugin::pluginStateSwitched() -{ - m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, pluginIsDisable()); - - refreshPluginItemsVisible(); -} - -bool ShowDesktopPlugin::pluginIsDisable() -{ - return !m_proxyInter->getValue(this, PLUGIN_STATE_KEY, true).toBool(); + m_showDesktopWidget.reset(new ShowDesktopWidget); + m_proxyInter->itemAdded(this, pluginName()); } const QString ShowDesktopPlugin::itemCommand(const QString &itemKey) @@ -113,7 +98,7 @@ void ShowDesktopPlugin::invokedMenuItem(const QString &itemKey, const QString &m if (menuId == "show-desktop") { QProcess::startDetached("/usr/lib/deepin-daemon/desktop-toggle", QStringList()); } else if (menuId == "remove") { - pluginStateSwitched(); + m_proxyInter->itemRemoved(this, pluginName()); } } @@ -138,11 +123,6 @@ void ShowDesktopPlugin::setSortKey(const QString &itemKey, const int order) m_proxyInter->saveValue(this, key, order); } -void ShowDesktopPlugin::pluginSettingsChanged() -{ - refreshPluginItemsVisible(); -} - PluginsItemInterface::PluginType ShowDesktopPlugin::type() { return PluginType::Fixed; @@ -150,41 +130,5 @@ PluginsItemInterface::PluginType ShowDesktopPlugin::type() PluginFlags ShowDesktopPlugin::flags() const { - return PluginFlag::Type_Fixed | PluginFlag::Attribute_ForceDock; -} - -void ShowDesktopPlugin::updateVisible() -{ - if (pluginIsDisable()) - m_proxyInter->itemRemoved(this, pluginName()); - else - m_proxyInter->itemAdded(this, pluginName()); -} - -void ShowDesktopPlugin::loadPlugin() -{ - if (m_pluginLoaded) { - return; - } - - m_pluginLoaded = true; - - m_showDesktopWidget.reset(new ShowDesktopWidget); - - m_proxyInter->itemAdded(this, pluginName()); - - updateVisible(); -} - -void ShowDesktopPlugin::refreshPluginItemsVisible() -{ - if (pluginIsDisable()) { - m_proxyInter->itemRemoved(this, pluginName()); - } else { - if (!m_pluginLoaded) { - loadPlugin(); - return; - } - updateVisible(); - } + return PluginFlag::Type_Fixed | Attribute_CanSetting; } diff --git a/plugins/show-desktop/showdesktopplugin.h b/plugins/show-desktop/showdesktopplugin.h index 8ba2547de..10ae53095 100644 --- a/plugins/show-desktop/showdesktopplugin.h +++ b/plugins/show-desktop/showdesktopplugin.h @@ -25,9 +25,7 @@ public: const QString pluginName() const override; const QString pluginDisplayName() const override; void init(PluginProxyInterface *proxyInter) override; - void pluginStateSwitched() override; bool pluginIsAllowDisable() override { return true; } - bool pluginIsDisable() override; QWidget *itemWidget(const QString &itemKey) override; QWidget *itemTipsWidget(const QString &itemKey) override; const QString itemCommand(const QString &itemKey) override; @@ -36,18 +34,10 @@ public: void refreshIcon(const QString &itemKey) override; int itemSortKey(const QString &itemKey) override; void setSortKey(const QString &itemKey, const int order) override; - void pluginSettingsChanged() override; PluginType type() override; PluginFlags flags() const override; private: - void updateVisible(); - void loadPlugin(); - void refreshPluginItemsVisible(); - -private: - bool m_pluginLoaded; - QScopedPointer m_showDesktopWidget; QScopedPointer m_tipsLabel; };