diff --git a/plugins/datetime/datetimewidget.cpp b/plugins/datetime/datetimewidget.cpp index 3aaba6fed..16b1c5ae7 100644 --- a/plugins/datetime/datetimewidget.cpp +++ b/plugins/datetime/datetimewidget.cpp @@ -50,6 +50,12 @@ DatetimeWidget::DatetimeWidget(QWidget *parent) connect(m_timedateInter, &Timedate::ShortDateFormatChanged, this, &DatetimeWidget::setShortDateFormat); connect(m_timedateInter, &Timedate::ShortTimeFormatChanged, this, &DatetimeWidget::setShortTimeFormat); + //连接日期时间修改信号,更新日期时间插件的布局 + connect(m_timedateInter, &Timedate::TimeUpdate, this, [ = ]{ + if (isVisible()) { + emit requestUpdateGeometry(); + } + }); } void DatetimeWidget::set24HourFormat(const bool value) diff --git a/plugins/network/networkitem.cpp b/plugins/network/networkitem.cpp index 738c843e8..ae09f05c9 100644 --- a/plugins/network/networkitem.cpp +++ b/plugins/network/networkitem.cpp @@ -10,6 +10,7 @@ #include #include +#include extern const int ItemWidth; extern const int ItemMargin; @@ -46,6 +47,8 @@ NetworkItem::NetworkItem(QWidget *parent) , m_timeOut(true) , m_timer(new QTimer(this)) , m_switchWireTimer(new QTimer(this)) + , m_wirelessScanTimer(new QTimer(this)) + , m_wirelessScanInterval(10) { m_timer->setInterval(100); @@ -142,6 +145,22 @@ NetworkItem::NetworkItem(QWidget *parent) connect(m_switchWiredBtn, &DSwitchButton::toggled, this, &NetworkItem::wiredsEnable); connect(m_switchWirelessBtn, &DSwitchButton::toggled, this, &NetworkItem::wirelessEnable); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &NetworkItem::onThemeTypeChanged); + + QGSettings *gsetting = new QGSettings("com.deepin.dde.dock", QByteArray(), this); + connect(gsetting, &QGSettings::changed, [&](const QString &key) { + if (key == "wireless-scan-interval") { + m_wirelessScanInterval = gsetting->get("wireless-scan-interval").toInt(); + m_wirelessScanTimer->setInterval(m_wirelessScanInterval * 1000); + } + }); + connect(m_wirelessScanTimer, &QTimer::timeout, [&] { + for (auto wirelessItem : m_wirelessItems) { + if (wirelessItem) { + wirelessItem->requestWirelessScan(); + } + } + }); + m_wirelessScanInterval = gsetting->get("wireless-scan-interval").toInt(); } QWidget *NetworkItem::itemApplet() @@ -1087,6 +1106,14 @@ void NetworkItem::updateView() m_applet->setFixedHeight(constDisplayItemCnt * ItemHeight); m_applet->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); } + + if (m_wirelessControlPanel->isVisible()) { + if (!m_wirelessScanTimer->isActive()) + m_wirelessScanTimer->start(m_wirelessScanInterval * 1000); + } else { + if (m_wirelessScanTimer->isActive()) + m_wirelessScanTimer->stop(); + } } void NetworkItem::updateSelf() diff --git a/plugins/network/networkitem.h b/plugins/network/networkitem.h index 1e7f70b38..0cc910770 100644 --- a/plugins/network/networkitem.h +++ b/plugins/network/networkitem.h @@ -116,6 +116,8 @@ private: PluginState m_pluginState; QTimer *m_timer; QTimer *m_switchWireTimer; + QTimer *m_wirelessScanTimer; + int m_wirelessScanInterval; }; #endif // NETWORKITEM_H