Fix:the wlanitem show bug 10-14

This commit is contained in:
king 2021-10-14 20:53:14 +08:00
parent d2e035ed8a
commit 1705488d60
5 changed files with 25 additions and 3 deletions

View File

@ -58,8 +58,8 @@ void WlanListItem::setExpanded(const bool &expanded)
}
this->setFixedHeight(expanded ? EXPANDED_HEIGHT : NORMAL_HEIGHT);
m_pwdFrame->setVisible(expanded);
m_autoConnectFrame->setVisible(expanded);
// m_pwdFrame->setVisible(false);
// m_autoConnectFrame->setVisible(false);
emit this->itemHeightChanged(m_data->m_NetSsid);
if (!expanded) {
QPalette pal = qApp->palette();
@ -68,6 +68,12 @@ void WlanListItem::setExpanded(const bool &expanded)
}
}
void WlanListItem::setWlanItemPwdVisible(const bool &expanded)
{
m_pwdFrame->setVisible(expanded);
m_autoConnectFrame->setVisible(expanded);
}
QString WlanListItem::getSsid()
{
if (!m_data) {

View File

@ -30,6 +30,7 @@ public:
void setWlanSignal(const int &signal);
void setWlanState(const int &state);
void setExpanded(const bool &expanded);
void setWlanItemPwdVisible(const bool &expanded);
QString getSsid();
KyWirelessNetItem *m_data = nullptr;
protected:

View File

@ -386,6 +386,10 @@ void WlanPage::onWlanRemoved(QString interface, QString ssid)
int height = m_itemsMap.value(ssid).second->height();
m_inactivatedNetListWidget->setFixedHeight(m_inactivatedNetListWidget->height() - height - NET_LIST_SPACING);
m_inactivatedWlanListAreaCentralWidget->setFixedHeight(m_inactivatedNetListWidget->height() + m_hiddenWlanLabel->height());
QListWidgetItem * aItem = (m_itemsMap.value(ssid)).first;
delete aItem;
WlanListItem * awItem = (m_itemsMap.value(ssid)).second;
delete awItem;
}
m_itemsMap.remove(ssid);
}
@ -605,22 +609,32 @@ void WlanPage::onActivatedWlanChanged(QString uuid, NetworkManager::ActiveConnec
void WlanPage::onItemHeightChanged(const QString &ssid)
{
qDebug() << "onItemHeightChanged" << __LINE__;
if (!m_itemsMap.contains(ssid)) { return; }
//新的展开item
QListWidgetItem *item = (m_itemsMap.value(ssid)).first;
WlanListItem * m_item = (m_itemsMap.value(ssid)).second;
if (m_expandedItem && m_expandedItem != item) {
qDebug() << "onItemHeightChanged : the old fold and the new expanded" << m_expandedItem << item << __LINE__;
QSize size(m_inactivatedNetListWidget->itemWidget(m_expandedItem)->size().width(), NORMAL_HEIGHT);
//旧的收起
m_expandedItem->setSizeHint(size);
m_inactivatedNetListWidget->itemWidget(m_expandedItem)->setFixedHeight(NORMAL_HEIGHT);
m_wlanExpandedItem->setWlanItemPwdVisible(false);
//新的展开
m_expandedItem = item;
m_wlanExpandedItem = m_item;
item->setSizeHint(m_inactivatedNetListWidget->itemWidget(item)->size());
m_item->setWlanItemPwdVisible(true);
} else if (!m_expandedItem) {
qDebug() << "onItemHeightChanged : only expanded the new one " << m_expandedItem << item << __LINE__;
m_expandedItem = item;
m_wlanExpandedItem = m_item;
m_inactivatedNetListWidget->setFixedHeight(m_inactivatedNetListWidget->height() + m_inactivatedNetListWidget->itemWidget(item)->height() - item->sizeHint().height());
m_inactivatedWlanListAreaCentralWidget->setFixedHeight(m_inactivatedNetListWidget->height() + m_hiddenWlanLabel->height());
item->setSizeHint(m_inactivatedNetListWidget->itemWidget(item)->size());
m_item->setWlanItemPwdVisible(true);
}
}

View File

@ -84,6 +84,7 @@ private:
QMap<QString, QPair<QListWidgetItem*, WlanListItem*>> m_itemsMap;
QListWidgetItem *m_expandedItem = nullptr;
WlanListItem *m_wlanExpandedItem = nullptr;
QFrame * m_inactivatedWlanListAreaCentralWidget = nullptr;
QVBoxLayout * m_inactivatedWlanListAreaLayout = nullptr;
QFrame * m_hiddenWlanWidget = nullptr;

View File

@ -83,7 +83,7 @@ int main(int argc, char *argv[])
// QApplication a(argc, argv);
QString id = QString("kylin-nm"+ QLatin1String(getenv("DISPLAY")));
QtSingleApplication a(id, argc, argv);
// qInstallMessageHandler(messageOutput);
qInstallMessageHandler(messageOutput);
if (a.isRunning()) {
auto connection = QDBusConnection::sessionBus();
QDBusInterface iface("com.kylin.network",