修改托盘无线网络输入密码界面交互

This commit is contained in:
zhangyuanyuan1 2023-07-21 18:16:18 +08:00
parent d3a2589fc7
commit 89a40f3ae3
4 changed files with 54 additions and 27 deletions

View File

@ -199,7 +199,7 @@ void WlanListItem::onRightButtonClicked()
void WlanListItem::enterEvent(QEvent *event)
{
//qDebug()<< LOG_FLAG <<"enterEvent" << m_wirelessNetItem.m_NetSsid;
m_mouseIsOut = false;
// m_mouseIsOut = false;
if (m_pwdFrame != nullptr && !m_pwdFrame->isVisible()) {
if (Deactivated != m_connectState) {
m_hoverButton->setProperty("useButtonPalette", true);
@ -223,7 +223,7 @@ void WlanListItem::enterEvent(QEvent *event)
void WlanListItem::leaveEvent(QEvent *event)
{
//qDebug()<< LOG_FLAG <<"leaveEvent"<< m_wirelessNetItem.m_NetSsid;
m_mouseIsOut = true;
// m_mouseIsOut = true;
m_hoverButton->hide();
if (m_connectState == Activated || m_connectState == Deactivating) {
m_nameLabel->setLabelMaximumWidth(NAMELABLE_MAX_WIDTH_ACTIVATED);
@ -234,12 +234,12 @@ void WlanListItem::leaveEvent(QEvent *event)
} else {
m_nameLabel->setLabelMaximumWidth(NAMELABLE_MAX_WIDTH_DEACTIVATED);
}
if (m_pwdFrame && m_pwdFrame->isVisible()) {
if (m_focusIsOut) {
setExpanded(false);
}
return QFrame::leaveEvent(event);
}
// if (m_pwdFrame && m_pwdFrame->isVisible()) {
// if (m_focusIsOut) {
// setExpanded(false);
// }
// return QFrame::leaveEvent(event);
// }
return ListItem::leaveEvent(event);
}
@ -252,18 +252,18 @@ bool WlanListItem::eventFilter(QObject *watched, QEvent *event)
}
}
if (watched == m_pwdLineEdit) {
if (event->type() == QEvent::FocusOut) {
m_focusIsOut = true;
//qDebug()<< LOG_FLAG <<"focusOutEvent" << m_wirelessNetItem.m_NetSsid;
if (m_mouseIsOut) {
setExpanded(false);
}
} else if (event->type() == QEvent::FocusIn) {
//qDebug()<< LOG_FLAG <<"focusInEvent" << m_wirelessNetItem.m_NetSsid;
m_focusIsOut = false;
}
}
// if (watched == m_pwdLineEdit) {
// if (event->type() == QEvent::FocusOut) {
// m_focusIsOut = true;
// //qDebug()<< LOG_FLAG <<"focusOutEvent" << m_wirelessNetItem.m_NetSsid;
// if (m_mouseIsOut) {
// setExpanded(false);
// }
// } else if (event->type() == QEvent::FocusIn) {
// //qDebug()<< LOG_FLAG <<"focusInEvent" << m_wirelessNetItem.m_NetSsid;
// m_focusIsOut = false;
// }
// }
return QFrame::eventFilter(watched, event);
}

View File

@ -122,8 +122,8 @@ private:
QCheckBox *m_autoConnectCheckBox = nullptr;
QLabel *m_autoConnectLabel = nullptr;
bool m_focusIsOut = true;
bool m_mouseIsOut = true;
//bool m_focusIsOut = true;
//bool m_mouseIsOut = true;
bool m_forgetConnection = false;
bool m_isApMode = false;

View File

@ -154,11 +154,12 @@ void WlanPage::initWlanUI()
addWlanMoreItem();
m_inactivatedAreaLayout->addWidget(m_inactivatedNetListWidget);
connect(m_inactivatedNetListWidget, &QListWidget::currentItemChanged, this, [=]() {
if (m_inactivatedNetListWidget->currentItem() != nullptr) {
m_inactivatedNetListWidget->currentItem()->setSelected(false);
}
});
connect(m_inactivatedNetListWidget, &QListWidget::currentItemChanged,
this, &WlanPage::onInactivateListWidgetItemChanged);
//点击【已连接】网络区域 去掉其他网络的选中效果
connect(m_activatedNetListWidget, &QListWidget::clicked, this, &WlanPage::setInactivateListItemNoSelect);
connect(m_activatedNetListWidget, &QListWidget::currentItemChanged, this, &WlanPage::setInactivateListItemNoSelect);
QPalette pal = m_activatedNetListWidget->palette();
pal.setBrush(QPalette::Base, QColor(0,0,0,0)); //背景透明
@ -890,6 +891,28 @@ void WlanPage::onDeviceManagedChanged(QString deviceName, bool managed)
}
}
void WlanPage::onInactivateListWidgetItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
if (previous != nullptr) {
QSize normalSize(previous->sizeHint().width(), NORMAL_HEIGHT);
previous->setSizeHint(normalSize);
WlanListItem *p_wlanItem = (WlanListItem*)m_inactivatedNetListWidget->itemWidget(previous);
p_wlanItem->setExpanded(false);
}
if (current != nullptr) {
current->setSelected(false);
}
}
void WlanPage::setInactivateListItemNoSelect()
{
if (m_inactivatedNetListWidget->currentItem() != nullptr) {
WlanListItem *p_wlanItem = (WlanListItem*)m_inactivatedNetListWidget->itemWidget(m_inactivatedNetListWidget->currentItem());
p_wlanItem->setExpanded(false);
m_inactivatedNetListWidget->currentItem()->setSelected(false);
}
}
void WlanPage::sendApStateChangeSignal(QString uuid,
QString ssid,
QString deviceName,
@ -1535,6 +1558,7 @@ void WlanPage::onWlanPageVisibleChanged(int index)
qDebug() << "wlanpage not visible";
showNonePwd();
}
m_inactivatedNetListWidget->setCurrentIndex(QModelIndex()); // 去除item选中效果
}
void WlanPage::showNonePwd()

View File

@ -138,6 +138,9 @@ private Q_SLOTS:
void onWlanStateChanged(NetworkManager::Device::State newstate, NetworkManager::Device::State oldstate, NetworkManager::Device::StateChangeReason reason);
void onDeviceManagedChanged(QString deviceName, bool managed);
void onInactivateListWidgetItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
void setInactivateListItemNoSelect();
protected:
bool eventFilter(QObject *watched, QEvent *event);