解决部分机型WiFi断开后连接列表仍然显示的BUG

This commit is contained in:
chenxuechao 2022-07-22 17:48:57 +08:00
parent 4904c35580
commit 7dc1bd145f
4 changed files with 37 additions and 25 deletions

View File

@ -130,7 +130,6 @@ void BlacklistPage::addBlacklistDevFrame(QString staMac, QString staName)
void BlacklistPage::clearBlacklistLayout() void BlacklistPage::clearBlacklistLayout()
{ {
m_blacklistMap.clear();
if (m_blacklistLayout->layout() != NULL) { if (m_blacklistLayout->layout() != NULL) {
QLayoutItem* layoutItem; QLayoutItem* layoutItem;
while ((layoutItem = m_blacklistLayout->layout()->takeAt(0)) != NULL) { while ((layoutItem = m_blacklistLayout->layout()->takeAt(0)) != NULL) {
@ -157,12 +156,8 @@ bool BlacklistPage::removeStaFromBlacklist(QString staMac)
return true; return true;
} }
void BlacklistPage::refreshBlacklist() void BlacklistPage::resetLayoutHight()
{ {
clearBlacklistLayout();
getBlacklistDevice(m_blacklistMap);
initBlacklistDev();
int height = 0; int height = 0;
for (int i = 0; i < m_blacklistLayout->count(); i ++) { for (int i = 0; i < m_blacklistLayout->count(); i ++) {
QWidget *w = m_blacklistLayout->itemAt(i)->widget(); QWidget *w = m_blacklistLayout->itemAt(i)->widget();
@ -172,14 +167,23 @@ void BlacklistPage::refreshBlacklist()
} }
this->setFixedHeight(height + m_titleLabel->height() + 8); this->setFixedHeight(height + m_titleLabel->height() + 8);
if (!m_blacklistMap.isEmpty()) { if (m_blacklistMap.isEmpty()) {
this->show();
} else {
this->hide(); this->hide();
} else {
this->show();
} }
this->update(); this->update();
} }
void BlacklistPage::refreshBlacklist()
{
m_blacklistMap.clear();
getBlacklistDevice(m_blacklistMap);
clearBlacklistLayout();
initBlacklistDev();
resetLayoutHight();
}
void BlacklistPage::onRemoveFromBlacklistBtnClicked(QString staMac) void BlacklistPage::onRemoveFromBlacklistBtnClicked(QString staMac)
{ {
if (staMac.isNull() || staMac.isEmpty()) { if (staMac.isNull() || staMac.isEmpty()) {

View File

@ -63,6 +63,7 @@ private:
void initBlacklistDev(); void initBlacklistDev();
void addBlacklistDevFrame(QString staMac, QString staName); void addBlacklistDevFrame(QString staMac, QString staName);
void clearBlacklistLayout(); void clearBlacklistLayout();
void resetLayoutHight();
private slots: private slots:
void onsetStaIntoBlacklist(QString staMac); void onsetStaIntoBlacklist(QString staMac);

View File

@ -116,7 +116,7 @@ void ConnectdevPage::addStaDevFrame(QString staMac, QString staName)
void ConnectdevPage::clearStaListLayout() void ConnectdevPage::clearStaListLayout()
{ {
m_staMap.clear();
if (m_staListLayout->layout() != NULL) { if (m_staListLayout->layout() != NULL) {
QLayoutItem* layoutItem; QLayoutItem* layoutItem;
while ((layoutItem = m_staListLayout->layout()->takeAt(0)) != NULL) { while ((layoutItem = m_staListLayout->layout()->takeAt(0)) != NULL) {
@ -128,30 +128,27 @@ void ConnectdevPage::clearStaListLayout()
void ConnectdevPage::onStaDevAdded(bool istrue, QString staMac, QString staName) void ConnectdevPage::onStaDevAdded(bool istrue, QString staMac, QString staName)
{ {
if (!m_staMap.keys().contains(staMac)) { if (!m_staMap.contains(staMac)) {
onStaDevChanged(istrue, staMac, staName); m_staMap.insert(staMac, staName);
clearStaListLayout();
initStaDev();
resetLayoutHight();
} }
} }
void ConnectdevPage::onStaDevRemoved(bool istrue, QString staMac, QString staName) void ConnectdevPage::onStaDevRemoved(bool istrue, QString staMac, QString staName)
{ {
if (m_staMap.keys().contains(staMac)) { if (m_staMap.contains(staMac)) {
onStaDevChanged(istrue, staMac, staName); if (m_staMap.remove(staMac)) {
clearStaListLayout();
initStaDev();
resetLayoutHight();
}
} }
} }
void ConnectdevPage::onStaDevChanged(bool istrue, QString staMac, QString staName) void ConnectdevPage::resetLayoutHight()
{ {
if (istrue) {
refreshStalist();
}
}
void ConnectdevPage::refreshStalist()
{
clearStaListLayout();
getConnectStaDevice(m_staMap);
initStaDev();
int height = 0; int height = 0;
for (int i = 0; i < m_staListLayout->count(); i ++) { for (int i = 0; i < m_staListLayout->count(); i ++) {
QWidget *w = m_staListLayout->itemAt(i)->widget(); QWidget *w = m_staListLayout->itemAt(i)->widget();
@ -169,6 +166,15 @@ void ConnectdevPage::refreshStalist()
this->update(); this->update();
} }
void ConnectdevPage::refreshStalist()
{
m_staMap.clear();
getConnectStaDevice(m_staMap);
clearStaListLayout();
initStaDev();
resetLayoutHight();
}
void ConnectdevPage::onDropIntoBlacklistBtnClicked(QString staMac) void ConnectdevPage::onDropIntoBlacklistBtnClicked(QString staMac)
{ {
if (staMac.isNull() || staMac.isEmpty()) { if (staMac.isNull() || staMac.isEmpty()) {

View File

@ -65,6 +65,7 @@ private:
void initNmDbus(QDBusInterface *interface); void initNmDbus(QDBusInterface *interface);
void onStaDevChanged(bool istrue, QString staMac, QString staName); void onStaDevChanged(bool istrue, QString staMac, QString staName);
void resetLayoutHight();
signals: signals:
void setStaIntoBlacklist(QString staMac); void setStaIntoBlacklist(QString staMac);