Merge branch 'dbus-interface' of http://gitlab2.kylin.com/kylin-desktop/kylin-nm into up-dbus

This commit is contained in:
jzxc95 2021-10-21 14:46:49 +08:00
commit 3b786d9131
9 changed files with 79 additions and 22 deletions

View File

@ -15,6 +15,7 @@ LanListItem::LanListItem(KyConnectItem *data, QString deviceName, QWidget *paren
m_nameLabel->setText(m_data->m_connectName);
if (m_data != nullptr) {
m_netButton->setButtonIcon(QIcon::fromTheme("network-wired-connected-symbolic"));
if (m_data->m_connectState == NetworkManager::ActiveConnection::State::Activated) {
setIcon(true);
m_isActive = true;
@ -41,10 +42,10 @@ LanListItem::LanListItem(QWidget *parent) : ListItem(parent)
void LanListItem::setIcon(bool isOn)
{
if (isOn) {
m_netButton->setButtonIcon(QIcon::fromTheme("network-wired-connected-symbolic"));
// m_netButton->setButtonIcon(QIcon::fromTheme("network-wired-connected-symbolic"));
m_netButton->setActive(true); //设置图标显示不同颜色
} else {
m_netButton->setButtonIcon(QIcon::fromTheme("network-wired-disconnected-symbolic"));
// m_netButton->setButtonIcon(QIcon::fromTheme("network-wired-connected-symbolic"));
m_netButton->setActive(false);
}
}

View File

@ -11,7 +11,9 @@
#include "../backend/dbus-interface/kylinagentinterface.h"
#define MAINWINDOW_WIDTH 420
#define MAINWINDOW_HEIGHT 456
#define MAINWINDOW_HEIGHT 476
#define LAYOUT_MARGINS 0,0,0,0
#define LOADING_TRAYICON_TIMER_MS 60
#define THEME_SCHAME "org.ukui.style"
#define COLOR_THEME "styleName"
@ -138,6 +140,7 @@ void MainWindow::initUI()
m_centralWidget->addTab(m_lanWidget, tr(""));
m_centralWidget->addTab(m_wlanWidget,tr(""));
m_tabBarLayout = new QHBoxLayout(this);
m_tabBarLayout->setContentsMargins(LAYOUT_MARGINS);
m_lanLabel = new QLabel(tr("LAN"));
m_lanLabel->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
m_wlanLabel = new QLabel(tr("WLAN"));
@ -152,6 +155,21 @@ void MainWindow::initUI()
*/
void MainWindow::initTrayIcon()
{
loadIcons.append(QIcon::fromTheme("kylin-network-1"));
loadIcons.append(QIcon::fromTheme("kylin-network-2"));
loadIcons.append(QIcon::fromTheme("kylin-network-3"));
loadIcons.append(QIcon::fromTheme("kylin-network-4"));
loadIcons.append(QIcon::fromTheme("kylin-network-5"));
loadIcons.append(QIcon::fromTheme("kylin-network-6"));
loadIcons.append(QIcon::fromTheme("kylin-network-7"));
loadIcons.append(QIcon::fromTheme("kylin-network-8"));
loadIcons.append(QIcon::fromTheme("kylin-network-9"));
loadIcons.append(QIcon::fromTheme("kylin-network-10"));
loadIcons.append(QIcon::fromTheme("kylin-network-11"));
loadIcons.append(QIcon::fromTheme("kylin-network-12"));
iconTimer = new QTimer(this);
connect(iconTimer, &QTimer::timeout, this, &MainWindow::onSetTrayIconLoading);
m_trayIcon = new QSystemTrayIcon();
m_trayIconMenu = new QMenu();
m_showMainwindowAction = new QAction(tr("Show MainWindow"),this);
@ -187,17 +205,17 @@ void MainWindow::initDbusConnnect()
connect(m_lanWidget, &LanPage::lanRemove, this, &MainWindow::lanRemove);
connect(m_lanWidget, &LanPage::lanUpdate, this, &MainWindow::lanUpdate);
connect(m_lanWidget, &LanPage::lanActiveConnectionStateChanged, this, &MainWindow::lanActiveConnectionStateChanged);
connect(m_lanWidget, &LanPage::lanConnectChanged, this, &MainWindow::onRefreshTrayIcon);
connect(m_lanWidget, &LanPage::lanConnectChanged, this, &MainWindow::onLanConnectStatusToChangeTrayIcon);
connect(m_wlanWidget, &WlanPage::wlanAdd, this, &MainWindow::wlanAdd);
connect(m_wlanWidget, &WlanPage::wlanRemove, this, &MainWindow::wlanRemove);
connect(m_wlanWidget, &WlanPage::wlanActiveConnectionStateChanged, this, &MainWindow::wlanactiveConnectionStateChanged);
connect(m_wlanWidget, &WlanPage::wlanConnectChanged, this, &MainWindow::onWlanConnectStatusToChangeTrayIcon);
connect(m_wlanWidget, &WlanPage::hotspotDeactivated, this, &MainWindow::hotspotDeactivated);
connect(m_wlanWidget, &WlanPage::hotspotActivated, this, &MainWindow::hotspotActivated);
connect(m_wlanWidget, &WlanPage::secuTypeChange, this, &MainWindow::secuTypeChange);
connect(m_wlanWidget, &WlanPage::signalStrengthChange, this, &MainWindow::signalStrengthChange);
connect(m_wlanWidget, &WlanPage::wlanConnectChanged, this, &MainWindow::onRefreshTrayIcon);
}
/**
@ -365,12 +383,42 @@ void MainWindow::onThemeChanged(const QString &key)
void MainWindow::onRefreshTrayIcon()
{
//更新托盘图标显示
iconTimer->stop();
if (m_lanWidget->lanIsConnected()) {
m_trayIcon->setIcon(QIcon::fromTheme("network-wired-signal-excellent-symbolic"));
} else if (m_wlanWidget->wlanIsConnected()){
m_trayIcon->setIcon(QIcon::fromTheme("network-wireless-signal-excellent-symbolic"));
} else {
m_trayIcon->setIcon(QIcon::fromTheme("network-wired-signal-excellent-symbolic"));
m_trayIcon->setIcon(QIcon::fromTheme("network-wired-disconnected-symbolic"));
}
}
void MainWindow::onSetTrayIconLoading()
{
if (currentIconIndex > 11) {
currentIconIndex = 0;
}
m_trayIcon->setIcon(loadIcons.at(currentIconIndex));
currentIconIndex ++;
}
void MainWindow::onLanConnectStatusToChangeTrayIcon(int state)
{
qDebug() << "lan state:" << state << Q_FUNC_INFO << __LINE__;
if (state==1 || state==3){
iconTimer->start(LOADING_TRAYICON_TIMER_MS);
} else {
onRefreshTrayIcon();
}
}
void MainWindow::onWlanConnectStatusToChangeTrayIcon(int state)
{
qDebug() << "wlan state:" << state << Q_FUNC_INFO << __LINE__;
if (state==1 || state==3){
iconTimer->start(LOADING_TRAYICON_TIMER_MS);
} else {
onRefreshTrayIcon();
}
}

View File

@ -98,6 +98,9 @@ private:
void initWindowTheme();
void resetWindowTheme();
void showControlCenter();
int currentIconIndex=0;
QList<QIcon> loadIcons;
QTimer *iconTimer = nullptr;
//主窗口的主要构成控件
QTabWidget * m_centralWidget = nullptr;
@ -127,6 +130,9 @@ private slots:
void onShowSettingsActionTriggled();
void onThemeChanged(const QString &key);
void onRefreshTrayIcon();
void onSetTrayIconLoading();
void onLanConnectStatusToChangeTrayIcon(int state);
void onWlanConnectStatusToChangeTrayIcon(int state);
};
#endif // MAINWINDOW_H

View File

@ -5,7 +5,7 @@
#define MAIN_LAYOUT_SPACING 0
#define TITLE_FRAME_HEIGHT 52
#define TITLE_LAYOUT_MARGINS 24,0,24,0
#define LAN_LIST_SPACING 2
#define LAN_LIST_SPACING 0
#define TEXT_MARGINS 16,0,0,0
#define SETTINGS_LAYOUT_MARGINS 24,16,24,16
#define TRANSPARENT_COLOR QColor(0,0,0,0)
@ -692,7 +692,7 @@ void LanPage::initUI()
m_activatedNetLabel->setText(tr("Activated LAN"));
m_activatedLanListWidget = new QListWidget(m_activatedNetFrame);
m_activatedLanListWidget->setFrameShape(QFrame::Shape::NoFrame);
m_activatedLanListWidget->setSpacing(LAN_LIST_SPACING);
// m_activatedLanListWidget->setSpacing(LAN_LIST_SPACING);
m_activatedLanListWidget->setFixedHeight(ITEM_HEIGHT); //active区域固定高度,只显示一个条目
m_activatedLanListWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_activatedNetLayout->addWidget(m_activatedLanListWidget);
@ -841,7 +841,7 @@ void LanPage::onUpdateLanlist(QString uuid,
emit lanActiveConnectionStateChanged(devName, uuid, state);
}
emit this->lanConnectChanged();
emit this->lanConnectChanged(state);
return;
}

View File

@ -82,7 +82,7 @@ signals:
void lanUpdate(QString devName, QStringList info);
void lanActiveConnectionStateChanged(QString interface, QString uuid, int status);
void lanConnectChanged();
void lanConnectChanged(int state);
private slots:
void onUpdateLanlist(QString uuid, NetworkManager::ActiveConnection::State state, NetworkManager::ActiveConnection::Reason reason);

View File

@ -27,6 +27,7 @@ void TabPage::initUI()
m_titleLayout = new QHBoxLayout(m_titleFrame);
m_titleLayout->setContentsMargins(TITLE_LAYOUT_MARGINS);
m_titleLabel = new QLabel(m_titleFrame);
m_titleLabel->setFixedHeight(LABEL_HEIGHT);
m_netSwitch = new SwitchButton(m_titleFrame);
m_titleLayout->addWidget(m_titleLabel);
m_titleLayout->addStretch();
@ -40,6 +41,7 @@ void TabPage::initUI()
m_deviceLayout->setContentsMargins(DEVICE_LAYOUT_MARGINS);
m_deviceFrame->setLayout(m_deviceLayout);
m_deviceLabel = new QLabel(m_deviceFrame);
m_deviceLabel->setFixedHeight(LABEL_HEIGHT);
m_deviceLabel->setText(tr("Current Device"));
m_deviceComboBox = new QComboBox(m_deviceFrame);
m_deviceComboBox->setFixedWidth(DEVICE_COMBOBOX_WIDTH);
@ -55,9 +57,10 @@ void TabPage::initUI()
m_activatedNetFrame->setMaximumHeight(ACTIVE_AREA_MAX_HEIGHT);
m_activatedNetLayout = new QVBoxLayout(m_activatedNetFrame);
m_activatedNetLayout->setContentsMargins(ACTIVE_NET_LAYOUT_MARGINS);
m_activatedNetLayout->setSpacing(NET_LAYOUT_SPACING);
// m_activatedNetLayout->setSpacing(NET_LAYOUT_SPACING);
m_activatedNetLabel = new QLabel(m_activatedNetFrame);
m_activatedNetLabel->setContentsMargins(TEXT_MARGINS);
m_activatedNetLabel->setFixedHeight(LABEL_HEIGHT);
m_activatedNetLayout->addWidget(m_activatedNetLabel);
m_activatedNetDivider = new Divider(this);
@ -65,10 +68,11 @@ void TabPage::initUI()
m_inactivatedNetFrame->setMinimumHeight(INACTIVE_AREA_MIN_HEIGHT);
m_inactivatedNetLayout = new QVBoxLayout(m_inactivatedNetFrame);
m_inactivatedNetLayout->setContentsMargins(NET_LAYOUT_MARGINS);
m_inactivatedNetLayout->setSpacing(NET_LAYOUT_SPACING);
// m_inactivatedNetLayout->setSpacing(NET_LAYOUT_SPACING);
m_inactivatedNetFrame->setLayout(m_inactivatedNetLayout);
m_inactivatedNetLabel = new QLabel(m_inactivatedNetFrame);
m_inactivatedNetLabel->setContentsMargins(TEXT_MARGINS);
m_inactivatedNetLabel->setFixedHeight(LABEL_HEIGHT);
m_inactivatedNetListArea = new QScrollArea(m_inactivatedNetFrame);
m_inactivatedNetListArea->setFrameShape(QFrame::Shape::NoFrame);
m_inactivatedNetListArea->setWidgetResizable(true);

View File

@ -22,15 +22,16 @@
#define DEVICE_LAYOUT_MARGINS 24,0,24,8
#define DEVICE_COMBOBOX_WIDTH 150
#define ACTIVE_NET_LAYOUT_MARGINS 8,8,8,8
#define NET_LAYOUT_MARGINS 8,8,0,8
#define NET_LAYOUT_MARGINS 8,8,0,3
#define NET_LAYOUT_SPACING 8
#define NET_LIST_SPACING 2
#define NET_LIST_SPACING 0
#define TEXT_MARGINS 16,0,0,0
//#define SCROLL_AREA_HEIGHT 200
#define SETTINGS_LAYOUT_MARGINS 24,16,24,16
#define TRANSPARENT_COLOR QColor(0,0,0,0)
#define INACTIVE_AREA_MIN_HEIGHT 150
#define ACTIVE_AREA_MAX_HEIGHT 100
#define INACTIVE_AREA_MIN_HEIGHT 170
#define ACTIVE_AREA_MAX_HEIGHT 92
#define LABEL_HEIGHT 20
enum KyDeviceType
{

View File

@ -429,14 +429,12 @@ void WlanPage::initWlanArea()
constructActivateConnectionArea();
m_inactivatedNetFrame->show();
m_inactivatedNetDivider->show();
constructWirelessNetArea();
} else {
m_activatedNetFrame->hide();
m_activatedNetDivider->hide();
m_inactivatedNetFrame->hide();
m_inactivatedNetDivider->hide();
}
return;
@ -870,7 +868,7 @@ void WlanPage::onConnectionStateChanged(QString uuid,
updateWlanItemState(m_inactivatedNetListWidget, p_listWidgetItem, Activating);
}
}
emit this->wlanConnectChanged(state);
return;
}
@ -975,7 +973,7 @@ void WlanPage::onWifiEnabledChanged(bool isWifiOn)
//m_netSwitch->setSwitchStatus(isWifiOn);
//m_netSwitch->setEnabled(isWifiOn);
m_switchGsettings->set(WIRELESS_SWITCH, isWifiOn);
emit this->wlanConnectChanged();
// emit this->wlanConnectChanged();
}
return;
@ -1249,7 +1247,6 @@ bool WlanPage::wlanIsConnected()
} else if (m_activateConnectionItemMap.contains(EMPTY_SSID)) {
return false;
}
return true;
}

View File

@ -58,7 +58,7 @@ signals:
void signalStrengthChange(QString devName, QString ssid, int strength);
void secuTypeChange(QString devName, QString ssid, QString secuType);
void hiddenWlanClicked();
void wlanConnectChanged();
void wlanConnectChanged(int state);
public slots:
void onMainWindowVisibleChanged(const bool &visible);