Merge branch '0315-up' into 'dbus-interface'

解决状态变化顺序异常导致的托盘图标加载状态停止&&托盘交互修改

See merge request kylin-desktop/kylin-nm!560
This commit is contained in:
赵 世旭 2022-03-15 07:05:25 +00:00
commit 59b0beab6e
6 changed files with 24 additions and 17 deletions

View File

@ -665,7 +665,7 @@ bool KyActiveConnectResourse::wiredConnectIsActived()
return false;
}
bool KyActiveConnectResourse::wirelessConnectIsActived()
bool KyActiveConnectResourse::checkWirelessStatus(NetworkManager::ActiveConnection::State state)
{
int index = 0;
NetworkManager::ActiveConnection::List activeConnectList;
@ -691,7 +691,7 @@ bool KyActiveConnectResourse::wirelessConnectIsActived()
continue;
}
if (activeConnectPtr->state() == NetworkManager::ActiveConnection::State::Activated) {
if (activeConnectPtr->state() == state) {
return true;
}
}

View File

@ -39,7 +39,7 @@ public:
bool connectionIsVirtual(QString uuid);
bool wiredConnectIsActived();
bool wirelessConnectIsActived();
bool checkWirelessStatus(NetworkManager::ActiveConnection::State state);
private:
void getActiveConnectIp(NetworkManager::ActiveConnection::Ptr activeConnectPtr,

View File

@ -401,7 +401,7 @@ void MainWindow::resetWindowTheme()
void MainWindow::showControlCenter()
{
QProcess process;
if (!m_lanWidget->lanIsConnected() && m_wlanWidget->wlanIsConnected()){
if (!m_lanWidget->lanIsConnected() && m_wlanWidget->checkWlanStatus(NetworkManager::ActiveConnection::State::Activated)){
process.startDetached("ukui-control-center -m wlanconnect");
} else {
process.startDetached("ukui-control-center -m netconnect");
@ -411,8 +411,11 @@ void MainWindow::showControlCenter()
/**
* @brief MainWindow::onTrayIconActivated
*/
void MainWindow::onTrayIconActivated()
void MainWindow::onTrayIconActivated(QSystemTrayIcon::ActivationReason reason)
{
if (reason == QSystemTrayIcon::ActivationReason::Context) {
m_trayIconMenu->popup(QCursor::pos());
} else {
if (this->isVisible()) {
qDebug() << "Received signal of tray icon activated, will hide mainwindow." << Q_FUNC_INFO << __LINE__;
hideMainwindow();
@ -421,6 +424,7 @@ void MainWindow::onTrayIconActivated()
qDebug() << "Received signal of tray icon activated, will show mainwindow." << Q_FUNC_INFO << __LINE__;
this->showMainwindow();
}
}
void MainWindow::onShowMainwindowActionTriggled()
{
@ -451,7 +455,7 @@ void MainWindow::onRefreshTrayIcon()
if (m_lanWidget->lanIsConnected()) {
m_trayIcon->setIcon(QIcon::fromTheme("network-wired-connected-symbolic"));
iconStatus = IconActiveType::LAN_CONNECTED;
} else if (m_wlanWidget->wlanIsConnected()){
} else if (m_wlanWidget->checkWlanStatus(NetworkManager::ActiveConnection::State::Activated)){
m_trayIcon->setIcon(QIcon::fromTheme("network-wireless-connected-symbolic"));
iconStatus = IconActiveType::WLAN_CONNECTED;
} else {
@ -461,7 +465,7 @@ void MainWindow::onRefreshTrayIcon()
NetworkManager::Connectivity connecttivity;
m_wlanWidget->getConnectivity(connecttivity);
if (connecttivity == NetworkManager::Connectivity::Portal || connecttivity == NetworkManager::Connectivity::Limited) {
if (connecttivity != NetworkManager::Connectivity::Full) {
if (iconStatus == IconActiveType::LAN_CONNECTED) {
m_trayIcon->setIcon(QIcon::fromTheme("network-error-symbolic"));
iconStatus = IconActiveType::LAN_CONNECTED_LIMITED;
@ -504,6 +508,9 @@ void MainWindow::onWlanConnectStatusToChangeTrayIcon(int state)
m_wlanIsLoading = true;
iconTimer->start(LOADING_TRAYICON_TIMER_MS);
} else {
if (m_wlanWidget->checkWlanStatus(NetworkManager::ActiveConnection::State::Activating)) {
return;
}
m_wlanIsLoading = false;
if (m_lanIsLoading == false) {
onRefreshTrayIcon();

View File

@ -155,7 +155,7 @@ private:
private slots:
void onTransChanged();
void onTrayIconActivated();
void onTrayIconActivated(QSystemTrayIcon::ActivationReason reason);
void onShowMainwindowActionTriggled();
void onShowSettingsActionTriggled();
void onThemeChanged(const QString &key);

View File

@ -1378,9 +1378,9 @@ void WlanPage::showDetailPage(QString devName, QString ssid)
return;
}
bool WlanPage::wlanIsConnected()
bool WlanPage::checkWlanStatus(NetworkManager::ActiveConnection::State state)
{
if (m_activatedConnectResource->wirelessConnectIsActived()) {
if (m_activatedConnectResource->checkWirelessStatus(state)) {
return true;
} else {
return false;

View File

@ -42,7 +42,7 @@ public:
void showDetailPage(QString devName, QString uuid);
bool wlanIsConnected();
bool checkWlanStatus(NetworkManager::ActiveConnection::State state);
void getApInfoBySsid(QString devName, QString ssid, QStringList &list);
//无线总开关