diff --git a/plugins/bluetooth/componments/bluetoothadapteritem.cpp b/plugins/bluetooth/componments/bluetoothadapteritem.cpp index 1ad80130b..5da0d47b9 100644 --- a/plugins/bluetooth/componments/bluetoothadapteritem.cpp +++ b/plugins/bluetooth/componments/bluetoothadapteritem.cpp @@ -139,6 +139,7 @@ BluetoothAdapterItem::BluetoothAdapterItem(Adapter *adapter, QWidget *parent) , m_refreshBtn(new RefreshButton(this)) , m_bluetoothInter(new DBusBluetooth("com.deepin.daemon.Bluetooth", "/com/deepin/daemon/Bluetooth", QDBusConnection::sessionBus(), this)) , m_showUnnamedDevices(false) + , m_stateBtnEnabled(true) , m_seperator(new HorizontalSeperator(this)) { initData(); @@ -226,6 +227,17 @@ QStringList BluetoothAdapterItem::connectedDevicesName() return devsName; } +void BluetoothAdapterItem::setStateBtnEnabled(bool enable) +{ + if (m_stateBtnEnabled != enable) { + m_stateBtnEnabled = enable; + } + + if (m_adapterStateBtn) { + m_adapterStateBtn->setEnabled(m_stateBtnEnabled); + } +} + void BluetoothAdapterItem::initData() { m_showUnnamedDevices = m_bluetoothInter->displaySwitch(); @@ -381,7 +393,7 @@ void BluetoothAdapterItem::initConnect() m_deviceListview->setVisible(state); m_seperator->setVisible(state); m_adapterStateBtn->setChecked(state); - m_adapterStateBtn->setEnabled(true); + m_adapterStateBtn->setEnabled(m_stateBtnEnabled); emit adapterPowerChanged(); }); connect(m_adapterStateBtn, &DSwitchButton::clicked, this, [ = ](bool state) { diff --git a/plugins/bluetooth/componments/bluetoothadapteritem.h b/plugins/bluetooth/componments/bluetoothadapteritem.h index 074fb4c17..cd1b32d0b 100644 --- a/plugins/bluetooth/componments/bluetoothadapteritem.h +++ b/plugins/bluetooth/componments/bluetoothadapteritem.h @@ -84,6 +84,7 @@ public: ~BluetoothAdapterItem(); Adapter *adapter() { return m_adapter; } QStringList connectedDevicesName(); + void setStateBtnEnabled(bool); public slots: // 添加蓝牙设备 @@ -125,6 +126,7 @@ private: RefreshButton *m_refreshBtn; DBusBluetooth *m_bluetoothInter; bool m_showUnnamedDevices; + bool m_stateBtnEnabled; QMap m_deviceItems; HorizontalSeperator *m_seperator; diff --git a/plugins/bluetooth/componments/bluetoothapplet.cpp b/plugins/bluetooth/componments/bluetoothapplet.cpp index 9cb9f7c64..d65ee47a4 100644 --- a/plugins/bluetooth/componments/bluetoothapplet.cpp +++ b/plugins/bluetooth/componments/bluetoothapplet.cpp @@ -43,7 +43,6 @@ SettingLabel::SettingLabel(QString text, QWidget *parent) this->setPalette(p); m_label->setForegroundRole(QPalette::BrightText); - updateEnabledStatus(); } void SettingLabel::addButton(QWidget *button, int space) @@ -52,24 +51,6 @@ void SettingLabel::addButton(QWidget *button, int space) m_layout->addSpacing(space); } -void SettingLabel::updateEnabledStatus() -{ - QPalette p = m_label->palette(); - if (m_label->isEnabled()) - p.setColor(QPalette::BrightText, QColor(0, 0, 0)); - else - p.setColor(QPalette::BrightText, QColor(51, 51, 51)); - m_label->setPalette(p); -} - -void SettingLabel::changeEvent(QEvent *event) -{ - if (event->type() == QEvent::EnabledChange) - updateEnabledStatus(); - - QWidget::changeEvent(event); -} - void SettingLabel::mousePressEvent(QMouseEvent *ev) { if (ev->button() == Qt::LeftButton) { @@ -175,7 +156,7 @@ void BluetoothApplet::onAdapterAdded(Adapter *adapter) // 如果开启了飞行模式,置灰蓝牙适配器使能开关 foreach (const auto item, m_adapterItems) { - item->setEnabled(!m_airPlaneModeInter->enabled()); + item->setStateBtnEnabled(!m_airPlaneModeInter->enabled()); } m_contentLayout->insertWidget(0, adapterItem, Qt::AlignTop | Qt::AlignVCenter); @@ -272,7 +253,7 @@ void BluetoothApplet::initConnect() connect(m_airPlaneModeInter, &DBusAirplaneMode::EnabledChanged, this, &BluetoothApplet::setAirplaneModeEnabled); connect(m_airPlaneModeInter, &DBusAirplaneMode::EnabledChanged, this, [this](bool enabled) { foreach (const auto item, m_adapterItems) { - item->setEnabled(!enabled); + item->setStateBtnEnabled(!enabled); } }); } diff --git a/plugins/bluetooth/componments/bluetoothapplet.h b/plugins/bluetooth/componments/bluetoothapplet.h index 0b265295a..3548f70e2 100644 --- a/plugins/bluetooth/componments/bluetoothapplet.h +++ b/plugins/bluetooth/componments/bluetoothapplet.h @@ -46,9 +46,6 @@ signals: protected: void mousePressEvent(QMouseEvent *ev) override; void paintEvent(QPaintEvent *event) override; - void changeEvent(QEvent *event) override; - - void updateEnabledStatus(); private: DLabel *m_label;