diff --git a/plugins/airplane-mode/airplanemodeplugin.cpp b/plugins/airplane-mode/airplanemodeplugin.cpp index 78aad6936..fd28e5990 100644 --- a/plugins/airplane-mode/airplanemodeplugin.cpp +++ b/plugins/airplane-mode/airplanemodeplugin.cpp @@ -45,26 +45,21 @@ const QString AirplaneModePlugin::pluginDisplayName() const void AirplaneModePlugin::init(PluginProxyInterface *proxyInter) { + if (m_proxyInter == proxyInter) + return; + m_proxyInter = proxyInter; - if (!pluginIsDisable()) - m_proxyInter->itemAdded(this, AIRPLANEMODE_KEY); + m_proxyInter->itemAdded(this, AIRPLANEMODE_KEY); refreshAirplaneEnableState(); } void AirplaneModePlugin::pluginStateSwitched() { - m_proxyInter->saveValue(this, STATE_KEY, pluginIsDisable()); - refreshAirplaneEnableState(); } -bool AirplaneModePlugin::pluginIsDisable() -{ - return !m_proxyInter->getValue(this, STATE_KEY, true).toBool(); -} - QWidget *AirplaneModePlugin::itemWidget(const QString &itemKey) { if (itemKey == AIRPLANEMODE_KEY) { diff --git a/plugins/airplane-mode/airplanemodeplugin.h b/plugins/airplane-mode/airplanemodeplugin.h index 4d7b95a2c..7e0662873 100644 --- a/plugins/airplane-mode/airplanemodeplugin.h +++ b/plugins/airplane-mode/airplanemodeplugin.h @@ -40,7 +40,6 @@ public: void init(PluginProxyInterface *proxyInter) Q_DECL_OVERRIDE; void pluginStateSwitched() Q_DECL_OVERRIDE; bool pluginIsAllowDisable() Q_DECL_OVERRIDE { return true; } - bool pluginIsDisable() Q_DECL_OVERRIDE; QWidget *itemWidget(const QString &itemKey) Q_DECL_OVERRIDE; QWidget *itemTipsWidget(const QString &itemKey) Q_DECL_OVERRIDE; int itemSortKey(const QString &itemKey) Q_DECL_OVERRIDE; diff --git a/plugins/bluetooth/bluetoothplugin.cpp b/plugins/bluetooth/bluetoothplugin.cpp index 4c1c5fe51..f1e751169 100644 --- a/plugins/bluetooth/bluetoothplugin.cpp +++ b/plugins/bluetooth/bluetoothplugin.cpp @@ -60,35 +60,19 @@ void BluetoothPlugin::init(PluginProxyInterface *proxyInter) m_bluetoothWidget.reset(new BluetoothMainWidget(m_adapterManager)); connect(m_bluetoothItem.data(), &BluetoothItem::justHasAdapter, [&] { - m_enableState = true; - refreshPluginItemsVisible(); + m_proxyInter->itemAdded(this, BLUETOOTH_KEY); }); connect(m_bluetoothItem.data(), &BluetoothItem::noAdapter, [&] { - m_enableState = false; - refreshPluginItemsVisible(); + m_proxyInter->itemRemoved(this, BLUETOOTH_KEY); }); connect(m_bluetoothWidget.data(), &BluetoothMainWidget::requestExpand, this, [ = ] { m_proxyInter->requestSetAppletVisible(this, QUICK_ITEM_KEY, true); }); - m_enableState = m_bluetoothItem->hasAdapter(); - - if (!pluginIsDisable()) + if (m_bluetoothItem->hasAdapter()) m_proxyInter->itemAdded(this, BLUETOOTH_KEY); } -void BluetoothPlugin::pluginStateSwitched() -{ - m_proxyInter->saveValue(this, STATE_KEY, pluginIsDisable()); - - refreshPluginItemsVisible(); -} - -bool BluetoothPlugin::pluginIsDisable() -{ - return !m_proxyInter->getValue(this, STATE_KEY, m_enableState).toBool(); -} - QWidget *BluetoothPlugin::itemWidget(const QString &itemKey) { if (itemKey == BLUETOOTH_KEY) { @@ -151,11 +135,6 @@ void BluetoothPlugin::refreshIcon(const QString &itemKey) } } -void BluetoothPlugin::pluginSettingsChanged() -{ - refreshPluginItemsVisible(); -} - QIcon BluetoothPlugin::icon(const DockPart &dockPart) { if (dockPart == DockPart::QuickPanel) @@ -201,10 +180,3 @@ PluginFlags BluetoothPlugin::flags() const | PluginFlag::Attribute_CanSetting; } -void BluetoothPlugin::refreshPluginItemsVisible() -{ - if (pluginIsDisable()) - m_proxyInter->itemRemoved(this, BLUETOOTH_KEY); - else - m_proxyInter->itemAdded(this, BLUETOOTH_KEY); -} diff --git a/plugins/bluetooth/bluetoothplugin.h b/plugins/bluetooth/bluetoothplugin.h index c8508acdf..77f11f20c 100644 --- a/plugins/bluetooth/bluetoothplugin.h +++ b/plugins/bluetooth/bluetoothplugin.h @@ -44,9 +44,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; QWidget *itemPopupApplet(const QString &itemKey) override; @@ -54,7 +52,6 @@ public: int itemSortKey(const QString &itemKey) override; void setSortKey(const QString &itemKey, const int order) override; void refreshIcon(const QString &itemKey) override; - void pluginSettingsChanged() override; QIcon icon(const DockPart &) override; QIcon icon(const DockPart &dockPart, int themeType) override; @@ -62,9 +59,6 @@ public: QString description() const override; PluginFlags flags() const override; -private: - void refreshPluginItemsVisible(); - private: AdaptersManager *m_adapterManager; QScopedPointer m_bluetoothItem; diff --git a/plugins/bluetooth/componments/bluetoothapplet.cpp b/plugins/bluetooth/componments/bluetoothapplet.cpp index a4beb4667..bd5077f8f 100644 --- a/plugins/bluetooth/componments/bluetoothapplet.cpp +++ b/plugins/bluetooth/componments/bluetoothapplet.cpp @@ -186,11 +186,10 @@ AdaptersManager *BluetoothApplet::adaptersManager() void BluetoothApplet::onAdapterAdded(Adapter *adapter) { - if (!m_adapterItems.size()) { - emit justHasAdapter(); - } + bool needJustHasAdapter = (m_adapterItems.size() == 0); if (m_adapterItems.contains(adapter->id())) { onAdapterRemoved(m_adapterItems.value(adapter->id())->adapter()); + needJustHasAdapter = (m_adapterItems.size() == 0); } BluetoothAdapterItem *adapterItem = new BluetoothAdapterItem(adapter, this); @@ -207,6 +206,9 @@ void BluetoothApplet::onAdapterAdded(Adapter *adapter) m_contentLayout->insertWidget(m_contentLayout->count() - 1, adapterItem, Qt::AlignTop | Qt::AlignVCenter); updateBluetoothPowerState(); updateSize(); + + if (needJustHasAdapter) + emit justHasAdapter(); } void BluetoothApplet::onAdapterRemoved(Adapter *adapter) diff --git a/plugins/multitasking/multitaskingplugin.cpp b/plugins/multitasking/multitaskingplugin.cpp index 70d750151..a8b5c7858 100644 --- a/plugins/multitasking/multitaskingplugin.cpp +++ b/plugins/multitasking/multitaskingplugin.cpp @@ -33,7 +33,6 @@ DGUI_USE_NAMESPACE using namespace Dock; MultitaskingPlugin::MultitaskingPlugin(QObject *parent) : QObject(parent) - , m_pluginLoaded(false) , m_multitaskingWidget(nullptr) , m_tipsLabel(new TipsWidget) { @@ -41,10 +40,10 @@ MultitaskingPlugin::MultitaskingPlugin(QObject *parent) m_tipsLabel->setObjectName("multitasking"); connect(DWindowManagerHelper::instance(), &DWindowManagerHelper::hasCompositeChanged, this, [ = ] { - if (!m_proxyInter || !m_pluginLoaded) + if (!m_proxyInter) return; - if (DWindowManagerHelper::instance()->hasComposite() && !pluginIsDisable()) + if (DWindowManagerHelper::instance()->hasComposite()) m_proxyInter->itemAdded(this, PLUGIN_KEY); else m_proxyInter->itemRemoved(this, PLUGIN_KEY); @@ -80,24 +79,13 @@ QWidget *MultitaskingPlugin::itemTipsWidget(const QString &itemKey) void MultitaskingPlugin::init(PluginProxyInterface *proxyInter) { m_proxyInter = proxyInter; + m_multitaskingWidget.reset(new MultitaskingWidget); - if (!pluginIsDisable()) { - loadPlugin(); + if (DWindowManagerHelper::instance()->hasComposite()) { + m_proxyInter->itemAdded(this, pluginName()); } } -void MultitaskingPlugin::pluginStateSwitched() -{ - m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, pluginIsDisable()); - - refreshPluginItemsVisible(); -} - -bool MultitaskingPlugin::pluginIsDisable() -{ - return !m_proxyInter->getValue(this, PLUGIN_STATE_KEY, true).toBool(); -} - const QString MultitaskingPlugin::itemCommand(const QString &itemKey) { if (itemKey == PLUGIN_KEY) @@ -174,11 +162,6 @@ void MultitaskingPlugin::setSortKey(const QString &itemKey, const int order) m_proxyInter->saveValue(this, key, order); } -void MultitaskingPlugin::pluginSettingsChanged() -{ - refreshPluginItemsVisible(); -} - PluginsItemInterface::PluginType MultitaskingPlugin::type() { return PluginType::Fixed; @@ -188,40 +171,3 @@ PluginFlags MultitaskingPlugin::flags() const { return PluginFlag::Type_Fixed; } - -void MultitaskingPlugin::updateVisible() -{ - if (pluginIsDisable() || !DWindowManagerHelper::instance()->hasComposite()) { - m_proxyInter->itemRemoved(this, PLUGIN_KEY); - } else { - m_proxyInter->itemAdded(this, PLUGIN_KEY); - } -} - -void MultitaskingPlugin::loadPlugin() -{ - if (m_pluginLoaded) { - return; - } - - m_pluginLoaded = true; - - m_multitaskingWidget.reset(new MultitaskingWidget); - - m_proxyInter->itemAdded(this, pluginName()); - - updateVisible(); -} - -void MultitaskingPlugin::refreshPluginItemsVisible() -{ - if (pluginIsDisable()) { - m_proxyInter->itemRemoved(this, PLUGIN_KEY); - } else { - if (!m_pluginLoaded) { - loadPlugin(); - return; - } - updateVisible(); - } -} diff --git a/plugins/multitasking/multitaskingplugin.h b/plugins/multitasking/multitaskingplugin.h index 9da4037c0..0903ac5a8 100644 --- a/plugins/multitasking/multitaskingplugin.h +++ b/plugins/multitasking/multitaskingplugin.h @@ -42,9 +42,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; @@ -53,18 +51,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_multitaskingWidget; QScopedPointer m_tipsLabel; }; diff --git a/plugins/power/powerplugin.cpp b/plugins/power/powerplugin.cpp index 56f123b1d..fb0889536 100644 --- a/plugins/power/powerplugin.cpp +++ b/plugins/power/powerplugin.cpp @@ -93,21 +93,7 @@ void PowerPlugin::init(PluginProxyInterface *proxyInter) { m_proxyInter = proxyInter; - if (!pluginIsDisable()) { - loadPlugin(); - } -} - -void PowerPlugin::pluginStateSwitched() -{ - m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, pluginIsDisable()); - - refreshPluginItemsVisible(); -} - -bool PowerPlugin::pluginIsDisable() -{ - return !m_proxyInter->getValue(this, PLUGIN_STATE_KEY, true).toBool(); + loadPlugin(); } const QString PowerPlugin::itemCommand(const QString &itemKey) @@ -169,11 +155,6 @@ void PowerPlugin::setSortKey(const QString &itemKey, const int order) m_proxyInter->saveValue(this, key, order); } -void PowerPlugin::pluginSettingsChanged() -{ - refreshPluginItemsVisible(); -} - QIcon PowerPlugin::icon(const DockPart &dockPart, int themeType) { // 电池插件不显示在快捷面板上,因此此处返回空图标 @@ -197,10 +178,10 @@ void PowerPlugin::updateBatteryVisible() { const bool exist = !m_powerInter->batteryPercentage().isEmpty(); - if (!exist) - m_proxyInter->itemRemoved(this, POWER_KEY); - else if (exist && !pluginIsDisable()) + if (exist) m_proxyInter->itemAdded(this, POWER_KEY); + else + m_proxyInter->itemRemoved(this, POWER_KEY); } void PowerPlugin::loadPlugin() @@ -239,19 +220,6 @@ void PowerPlugin::loadPlugin() onGSettingsChanged("showtimetofull"); } -void PowerPlugin::refreshPluginItemsVisible() -{ - if (pluginIsDisable()) { - m_proxyInter->itemRemoved(this, POWER_KEY); - } else { - if (!m_pluginLoaded) { - loadPlugin(); - return; - } - updateBatteryVisible(); - } -} - void PowerPlugin::onGSettingsChanged(const QString &key) { if (key != "showtimetofull") { diff --git a/plugins/power/powerplugin.h b/plugins/power/powerplugin.h index b1d1f594c..b522b93b7 100644 --- a/plugins/power/powerplugin.h +++ b/plugins/power/powerplugin.h @@ -46,9 +46,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; @@ -56,14 +54,12 @@ 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; QIcon icon(const DockPart &dockPart, int themeType) override; PluginFlags flags() const override; private: void updateBatteryVisible(); void loadPlugin(); - void refreshPluginItemsVisible(); void onGSettingsChanged(const QString &key); void refreshTipsData();