mainwindow暂存
This commit is contained in:
parent
4c8b7a37c3
commit
f13e392f14
|
@ -1,23 +1,24 @@
|
|||
INCLUDEPATH += $$PWD
|
||||
include(tools/tools.pri)
|
||||
include(xatom/xatom.pri)
|
||||
include(tab-pages/tab-pages.pri)
|
||||
include(list-items/list-items.pri)
|
||||
include(netdetails/netdetails.pri)
|
||||
include(enterprise-wlan/enterprise-wlan.pri)
|
||||
include(single-pages/single-pages.pri)
|
||||
#include(tools/tools.pri)
|
||||
#include(xatom/xatom.pri)
|
||||
#include(tab-pages/tab-pages.pri)
|
||||
#include(list-items/list-items.pri)
|
||||
#include(netdetails/netdetails.pri)
|
||||
#include(enterprise-wlan/enterprise-wlan.pri)
|
||||
#include(single-pages/single-pages.pri)
|
||||
include(networkmode/networkmode.pri)
|
||||
|
||||
FORMS += \
|
||||
$$PWD/wificonfigdialog.ui
|
||||
# $$PWD/wificonfigdialog.ui
|
||||
|
||||
HEADERS += \
|
||||
$$PWD/customstyle.h \
|
||||
$$PWD/mainwindow.h \
|
||||
$$PWD/wificonfigdialog.h \
|
||||
$$PWD/vpnobject.h
|
||||
# $$PWD/wificonfigdialog.h \
|
||||
# $$PWD/vpnobject.h
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/customstyle.cpp \
|
||||
$$PWD/mainwindow.cpp \
|
||||
$$PWD/wificonfigdialog.cpp \
|
||||
$$PWD/vpnobject.cpp
|
||||
# $$PWD/wificonfigdialog.cpp \
|
||||
# $$PWD/vpnobject.cpp
|
||||
|
|
|
@ -9,12 +9,14 @@
|
|||
#include <QPainter>
|
||||
#include <QPainterPath>
|
||||
|
||||
#include "kylinnetworkdeviceresource.h"
|
||||
#include "../backend/dbus-interface/kylinagentinterface.h"
|
||||
//#include "kylinnetworkdeviceresource.h"
|
||||
//#include "../backend/dbus-interface/kylinagentinterface.h"
|
||||
|
||||
#include "ukuistylehelper/ukuistylehelper.h"
|
||||
#include "windowmanager/windowmanager.h"
|
||||
|
||||
#include <kwindowsystem.h>
|
||||
#include <kwindowsystem_export.h>
|
||||
#include "kysdk/kysdk-system/libkysysinfo.h"
|
||||
|
||||
#define MAINWINDOW_WIDTH 420
|
||||
#define MAINWINDOW_HEIGHT 476
|
||||
|
@ -28,12 +30,33 @@ const QString intel = "V10SP1-edu";
|
|||
|
||||
#define KEY_PRODUCT_FEATURES "PRODUCT_FEATURES"
|
||||
|
||||
#include <kwindowsystem.h>
|
||||
#include <kwindowsystem_export.h>
|
||||
#include "kysdk/kysdk-system/libkysysinfo.h"
|
||||
#define LAN_PAGE_INDEX 0
|
||||
#define WLAN_PAGE_INDEX 1
|
||||
|
||||
#define EXCELLENT_SIGNAL 80
|
||||
#define GOOD_SIGNAL 55
|
||||
#define OK_SIGNAL 30
|
||||
#define LOW_SIGNAL 5
|
||||
#define NONE_SIGNAL 0
|
||||
|
||||
#define EXCELLENT_SIGNAL_ICON "network-wireless-signal-excellent-symbolic"
|
||||
#define GOOD_SIGNAL_ICON "network-wireless-signal-good-symbolic"
|
||||
#define OK_SIGNAL_ICON "network-wireless-signal-ok-symbolic"
|
||||
#define LOW_SIGNAL_ICON "network-wireless-signal-weak-symbolic"
|
||||
#define NONE_SIGNAL_ICON "network-wireless-signal-none-symbolic"
|
||||
|
||||
#define EXCELLENT_SIGNAL_LIMIT_ICON "ukui-network-wireless-signal-excellent-error-symbolic"
|
||||
#define GOOD_SIGNAL_LIMIT_ICON "ukui-network-wireless-signal-good-error-symbolic"
|
||||
#define OK_SIGNAL_LIMIT_ICON "ukui-network-wireless-signal-ok-error-symbolic"
|
||||
#define LOW_SIGNAL_LIMIT_ICON "ukui-network-wireless-signal-weak-error-symbolic"
|
||||
#define NONE_SIGNAL_LIMIT_ICON "ukui-network-wireless-signal-none-error-symbolic"
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
|
||||
{
|
||||
qRegisterMetaType<KyConnectState>("KyConnectState");
|
||||
qRegisterMetaType<KyConnectStatus>("KyConnectStatus");
|
||||
qRegisterMetaType<KyConnectionType>("KyConnectionType");
|
||||
|
||||
firstlyStart();
|
||||
}
|
||||
|
||||
|
@ -66,17 +89,17 @@ void MainWindow::showMainwindow()
|
|||
#ifdef WITHKYSEC
|
||||
if (!kysec_is_disabled() && kysec_get_3adm_status() && (getuid() || geteuid())){
|
||||
if (nullptr != m_wlanWidget) {
|
||||
m_wlanWidget->hideSetting();
|
||||
//todo m_wlanWidget->hideSetting();
|
||||
}
|
||||
if (nullptr != m_lanWidget) {
|
||||
m_lanWidget->hideSetting();
|
||||
//todo m_lanWidget->hideSetting();
|
||||
}
|
||||
} else {
|
||||
if (nullptr != m_wlanWidget) {
|
||||
m_wlanWidget->showSetting();
|
||||
//todo m_wlanWidget->showSetting();
|
||||
}
|
||||
if (nullptr != m_lanWidget) {
|
||||
m_lanWidget->showSetting();
|
||||
//todo m_lanWidget->showSetting();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -105,7 +128,7 @@ void MainWindow::setWiredDefaultDevice(QString deviceName)
|
|||
*/
|
||||
void MainWindow::setWirelessDefaultDevice(QString deviceName)
|
||||
{
|
||||
// m_wlanWidget->updateDefaultDevice(deviceName);
|
||||
// m_wlanWidget->updateDefaultDevice(deviceName);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -129,10 +152,12 @@ void MainWindow::firstlyStart()
|
|||
});
|
||||
m_secondaryStartTimer->start(5 * 1000);
|
||||
|
||||
m_createPagePtrMap.clear();
|
||||
|
||||
m_networkMode = new NetworkModeConfig(this);
|
||||
m_networkMode->initWiredNetworkMode();
|
||||
m_networkMode->initWirelessNetworkMode();
|
||||
//加载key ring
|
||||
agent_init();
|
||||
// agent_init();
|
||||
// system("kylin-keyring --start &");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -243,26 +268,23 @@ void MainWindow::initUI()
|
|||
this->setCentralWidget(m_centralWidget);
|
||||
m_centralWidget->tabBar()->setFixedWidth(this->width()+1);
|
||||
m_centralWidget->tabBar()->setProperty("setRadius", 12);
|
||||
m_lanWidget = new LanPage(m_centralWidget);
|
||||
m_wlanWidget = new WlanPage(m_centralWidget);
|
||||
connect(this, &MainWindow::mainWindowVisibleChanged, m_wlanWidget, &WlanPage::onMainWindowVisibleChanged);
|
||||
// m_centralWidget->addTab(m_lanWidget, QIcon::fromTheme("network-wired-connected-symbolic", QIcon::fromTheme("network-wired-symbolic", QIcon(":/res/l/network-online.svg"))), tr("LAN"));
|
||||
// m_centralWidget->addTab(m_wlanWidget, QIcon::fromTheme("network-wireless-signal-excellent-symbolic", QIcon(":/res/x/wifi-list-bg.svg")), tr("WLAN"));
|
||||
|
||||
loadLanPlugin();
|
||||
loadWlanPlugin();
|
||||
m_centralWidget->addTab(m_lanWidget, tr(""));
|
||||
m_centralWidget->addTab(m_wlanWidget,tr(""));
|
||||
m_centralWidget->addTab(m_wlanWidget, tr(""));
|
||||
|
||||
m_lanLabel = new QLabel(tr("LAN"), m_centralWidget);
|
||||
m_lanLabel->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
|
||||
m_wlanLabel = new QLabel(tr("WLAN"), m_centralWidget);
|
||||
m_wlanLabel->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
|
||||
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"));
|
||||
m_wlanLabel->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
|
||||
m_tabBarLayout->addWidget(m_lanLabel);
|
||||
m_tabBarLayout->addWidget(m_wlanLabel);
|
||||
m_centralWidget->tabBar()->setLayout(m_tabBarLayout);
|
||||
m_centralWidget->tabBar()->setProperty("useTabbarSeparateLine", false); // 去掉中间的分割线
|
||||
m_centralWidget->setAttribute(Qt::WA_TranslucentBackground, true); // 背景透明 解决切换黑屏问题
|
||||
connect(m_centralWidget, &QTabWidget::currentChanged, m_wlanWidget, &WlanPage::onWlanPageVisibleChanged);
|
||||
paintWithTrans();
|
||||
}
|
||||
|
||||
|
@ -295,20 +317,29 @@ void MainWindow::registerTrayIcon()
|
|||
*/
|
||||
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_thread = new QThread;
|
||||
m_manager = new KyNetworkManager();
|
||||
m_manager->moveToThread(m_thread);
|
||||
connect(m_thread, &QThread::started, m_manager, &KyNetworkManager::kylinNetworkManagerInit);
|
||||
connect(m_thread, &QThread::finished, m_manager, &KyNetworkManager::deleteLater);
|
||||
m_thread->start();
|
||||
|
||||
while (!m_manager->isInitFinished()) {
|
||||
::usleep(1000);
|
||||
}
|
||||
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-1"));
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-2"));
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-3"));
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-4"));
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-5"));
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-6"));
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-7"));
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-8"));
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-9"));
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-10"));
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-11"));
|
||||
m_loadIcons.append(QIcon::fromTheme("kylin-network-12"));
|
||||
|
||||
m_trayIconMenu = new QMenu();
|
||||
m_showMainwindowAction = new QAction(tr("Show MainWindow"),this);
|
||||
|
@ -316,19 +347,32 @@ void MainWindow::initTrayIcon()
|
|||
m_showSettingsAction->setIcon(QIcon::fromTheme("document-page-setup-symbolic", QIcon(":/res/x/setup.png")) );
|
||||
// m_trayIconMenu->addAction(m_showMainwindowAction);
|
||||
m_trayIconMenu->addAction(m_showSettingsAction);
|
||||
|
||||
m_trayIcon->setContextMenu(m_trayIconMenu);
|
||||
iconStatus = IconActiveType::LAN_CONNECTED;
|
||||
onRefreshTrayIcon();
|
||||
|
||||
m_loadingTimer = new QTimer(this);
|
||||
connect(m_loadingTimer, &QTimer::timeout, this, &MainWindow::onSetTrayIconLoading);
|
||||
m_refreshTimer = new QTimer(this);
|
||||
connect(m_refreshTimer, &QTimer::timeout, this, &MainWindow::updateIcon);
|
||||
|
||||
connect(m_trayIcon, &QSystemTrayIcon::activated, this, &MainWindow::onTrayIconActivated);
|
||||
// connect(m_showMainwindowAction, &QAction::triggered, this, &MainWindow::onShowMainwindowActionTriggled);
|
||||
connect(m_showSettingsAction, &QAction::triggered, this, &MainWindow::onShowSettingsActionTriggled);
|
||||
connect(m_manager, &KyNetworkManager::wiredStateChange, this, &MainWindow::onWiredStateChange);
|
||||
connect(m_manager, &KyNetworkManager::wirelessStateChange, this, &MainWindow::onWirelessStateChange);
|
||||
connect(m_manager, &KyNetworkManager::connectStatusChanged , [=](KyConnectStatus status){
|
||||
m_iconStatus = status;
|
||||
updateIcon();
|
||||
});
|
||||
|
||||
m_manager->getConnectStatus(m_iconStatus);
|
||||
updateIcon();
|
||||
m_refreshTimer->start(10 * 1000);
|
||||
m_trayIcon->show();
|
||||
}
|
||||
|
||||
void MainWindow::initDbusConnnect()
|
||||
{
|
||||
#if 0
|
||||
connect(m_lanWidget, &LanPage::deviceStatusChanged, this, &MainWindow::deviceStatusChanged);
|
||||
connect(m_lanWidget, &LanPage::deviceNameChanged, this, &MainWindow::deviceNameChanged);
|
||||
connect(m_wlanWidget, &WlanPage::deviceStatusChanged, this, &MainWindow::deviceStatusChanged);
|
||||
|
@ -357,7 +401,7 @@ void MainWindow::initDbusConnnect()
|
|||
connect(m_wlanWidget, &WlanPage::timeToUpdate , this, &MainWindow::timeToUpdate);
|
||||
connect(m_wlanWidget, &WlanPage::showMainWindow, this, &MainWindow::onShowMainWindow);
|
||||
connect(m_wlanWidget, &WlanPage::connectivityChanged, this, &MainWindow::onConnectivityChanged);
|
||||
|
||||
#endif
|
||||
//模式切换
|
||||
QDBusConnection::sessionBus().connect(QString("com.kylin.statusmanager.interfacer"),
|
||||
QString("/"),
|
||||
|
@ -497,7 +541,7 @@ void MainWindow::resetWindowTheme()
|
|||
void MainWindow::showControlCenter()
|
||||
{
|
||||
QProcess process;
|
||||
if (!m_lanWidget->lanIsConnected() && m_wlanWidget->checkWlanStatus(NetworkManager::ActiveConnection::State::Activated)){
|
||||
if (m_iconStatus == WLAN_CONNECTED || m_iconStatus == WLAN_CONNECTED_LIMITED){
|
||||
process.startDetached("ukui-control-center -m wlanconnect");
|
||||
} else {
|
||||
process.startDetached("ukui-control-center -m netconnect");
|
||||
|
@ -514,6 +558,74 @@ void MainWindow::showByWaylandHelper()
|
|||
|
||||
}
|
||||
|
||||
void MainWindow::loadLanPlugin()
|
||||
{
|
||||
m_lanWidget = new QWidget(this);
|
||||
QPluginLoader lanPageLoader("/home/kylin/kylin-nm-plugin/build-kylin-nm-unknown-Debug/libnetconnect.so");//有线
|
||||
if (lanPageLoader.load()) {
|
||||
QObject * plugin = lanPageLoader.instance();
|
||||
if (plugin) {
|
||||
Interface * lanPluginInstance = qobject_cast<Interface *>(plugin);
|
||||
// 插件是否启用
|
||||
if (!lanPluginInstance) {
|
||||
return;
|
||||
}
|
||||
lanPluginInstance->setPluginType(COMPLEX, true);
|
||||
|
||||
m_lanWidget = lanPluginInstance->pluginUi();
|
||||
lanPluginInstance->setParentWidget(m_centralWidget);
|
||||
|
||||
} else {
|
||||
qDebug() << "Load lanPage Failed: " << lanPageLoader.errorString() << "\n";
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
qDebug() << "Load lanPage Failed: " << lanPageLoader.errorString() << "\n";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::loadWlanPlugin()
|
||||
{
|
||||
m_wlanWidget = new QWidget(this);
|
||||
QPluginLoader wlanPageLoader("/home/kylin/kylin-nm-plugin/build-kylin-nm-unknown-Debug/libwlanconnect.so");//无线
|
||||
if (wlanPageLoader.load()) {
|
||||
QObject * plugin = wlanPageLoader.instance();
|
||||
if (plugin) {
|
||||
Interface * wlanPluginInstance = qobject_cast<Interface *>(plugin);
|
||||
// 插件是否启用
|
||||
if (!wlanPluginInstance) {
|
||||
return;
|
||||
}
|
||||
wlanPluginInstance->setPluginType(COMPLEX, true);
|
||||
|
||||
m_wlanWidget = wlanPluginInstance->pluginUi();
|
||||
wlanPluginInstance->setParentWidget(m_centralWidget);
|
||||
|
||||
} else {
|
||||
qDebug() << "Load wlanPage Failed: " << wlanPageLoader.errorString() << "\n";
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
qDebug() << "Load wlanPage Failed: " << wlanPageLoader.errorString() << "\n";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::startLoading()
|
||||
{
|
||||
if (!m_loadingTimer->isActive()) {
|
||||
m_loadingTimer->start(60);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::stopLoading()
|
||||
{
|
||||
if (m_loadingTimer->isActive()) {
|
||||
m_loadingTimer->stop();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief MainWindow::onTrayIconActivated 点击托盘图标的槽函数
|
||||
*/
|
||||
|
@ -554,73 +666,92 @@ void MainWindow::onThemeChanged(const QString &key)
|
|||
}
|
||||
}
|
||||
|
||||
void MainWindow::onRefreshTrayIcon()
|
||||
{
|
||||
//更新托盘图标显示
|
||||
iconTimer->stop();
|
||||
if (m_lanWidget->lanIsConnected()) {
|
||||
m_trayIcon->setIcon(QIcon::fromTheme("network-wired-connected-symbolic"));
|
||||
iconStatus = IconActiveType::LAN_CONNECTED;
|
||||
} else if (m_wlanWidget->checkWlanStatus(NetworkManager::ActiveConnection::State::Activated)){
|
||||
m_trayIcon->setIcon(QIcon::fromTheme("network-wireless-connected-symbolic"));
|
||||
iconStatus = IconActiveType::WLAN_CONNECTED;
|
||||
} else {
|
||||
m_trayIcon->setIcon(QIcon::fromTheme("network-wired-disconnected-symbolic"));
|
||||
iconStatus = IconActiveType::NOT_CONNECTED;
|
||||
}
|
||||
|
||||
NetworkManager::Connectivity connecttivity;
|
||||
m_wlanWidget->getConnectivity(connecttivity);
|
||||
if (connecttivity != NetworkManager::Connectivity::Full) {
|
||||
if (iconStatus == IconActiveType::LAN_CONNECTED) {
|
||||
m_trayIcon->setIcon(QIcon::fromTheme("network-error-symbolic"));
|
||||
iconStatus = IconActiveType::LAN_CONNECTED_LIMITED;
|
||||
} else if (iconStatus == IconActiveType::WLAN_CONNECTED) {
|
||||
//todo 信号强度
|
||||
m_trayIcon->setIcon(QIcon::fromTheme("network-wireless-signal-excellent-error-symbolic"));
|
||||
iconStatus = IconActiveType::WLAN_CONNECTED_LIMITED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::onSetTrayIconLoading()
|
||||
{
|
||||
if (currentIconIndex > 11) {
|
||||
currentIconIndex = 0;
|
||||
if (m_currentIconIndex > 11) {
|
||||
m_currentIconIndex = 0;
|
||||
}
|
||||
m_trayIcon->setIcon(loadIcons.at(currentIconIndex));
|
||||
iconStatus = IconActiveType::ACTIVATING;
|
||||
currentIconIndex ++;
|
||||
m_trayIcon->setIcon(m_loadIcons.at(m_currentIconIndex));
|
||||
m_currentIconIndex ++;
|
||||
}
|
||||
|
||||
void MainWindow::onLanConnectStatusToChangeTrayIcon(int state)
|
||||
//更新托盘图标显示
|
||||
void MainWindow::updateIcon()
|
||||
{
|
||||
qDebug() << "lan state:" << state << Q_FUNC_INFO << __LINE__;
|
||||
if (state==1 || state==3){
|
||||
m_lanIsLoading = true;
|
||||
iconTimer->start(LOADING_TRAYICON_TIMER_MS);
|
||||
} else {
|
||||
m_lanIsLoading = false;
|
||||
if (m_wlanIsLoading == false) {
|
||||
onRefreshTrayIcon();
|
||||
if (m_loadingTimer->isActive()) {
|
||||
return;
|
||||
}
|
||||
int signalStrength = 0;
|
||||
QIcon icon;
|
||||
|
||||
if (m_iconStatus == LAN_CONNECTED) {
|
||||
icon = QIcon::fromTheme("network-wired-symbolic");
|
||||
m_trayIcon->setIcon(icon);
|
||||
return;
|
||||
} else if (m_iconStatus == WLAN_CONNECTED
|
||||
|| m_iconStatus == WLAN_CONNECTED_LIMITED) {
|
||||
signalStrength = m_manager->getAcivateWifiSignal();
|
||||
} else if (m_iconStatus == NOT_CONNECTED) {
|
||||
icon = QIcon::fromTheme("network-wired-disconnected-symbolic");
|
||||
m_trayIcon->setIcon(icon);
|
||||
return;
|
||||
} else if (m_iconStatus == LAN_CONNECTED_LIMITED) {
|
||||
icon = QIcon::fromTheme("network-error-symbolic");
|
||||
}
|
||||
|
||||
if (m_iconStatus == WLAN_CONNECTED) {
|
||||
if (signalStrength > EXCELLENT_SIGNAL){
|
||||
icon = QIcon::fromTheme(EXCELLENT_SIGNAL_ICON);
|
||||
} else if (signalStrength > GOOD_SIGNAL) {
|
||||
icon = QIcon::fromTheme(GOOD_SIGNAL_ICON);
|
||||
} else if (signalStrength > OK_SIGNAL) {
|
||||
icon = QIcon::fromTheme(OK_SIGNAL_ICON);
|
||||
} else if (signalStrength > LOW_SIGNAL) {
|
||||
icon = QIcon::fromTheme(LOW_SIGNAL_ICON);
|
||||
} else {
|
||||
icon = QIcon::fromTheme(NONE_SIGNAL_ICON);
|
||||
}
|
||||
} else if (m_iconStatus == WLAN_CONNECTED_LIMITED) {
|
||||
if (signalStrength > EXCELLENT_SIGNAL){
|
||||
icon = QIcon::fromTheme(EXCELLENT_SIGNAL_LIMIT_ICON);
|
||||
} else if (signalStrength > GOOD_SIGNAL) {
|
||||
icon = QIcon::fromTheme(GOOD_SIGNAL_LIMIT_ICON);
|
||||
} else if (signalStrength > OK_SIGNAL) {
|
||||
icon = QIcon::fromTheme(OK_SIGNAL_LIMIT_ICON);
|
||||
} else if (signalStrength > LOW_SIGNAL) {
|
||||
icon = QIcon::fromTheme(LOW_SIGNAL_LIMIT_ICON);
|
||||
} else {
|
||||
icon = QIcon::fromTheme(NONE_SIGNAL_LIMIT_ICON);
|
||||
}
|
||||
}
|
||||
|
||||
m_trayIcon->setIcon(icon);
|
||||
}
|
||||
|
||||
void MainWindow::onWiredStateChange(QString deviceName, QString uuid, KyConnectState state)
|
||||
{
|
||||
Q_UNUSED(deviceName)
|
||||
Q_UNUSED(uuid)
|
||||
if (state == CONNECT_STATE_ACTIVATING
|
||||
|| state == CONNECT_STATE_DEACTIVATING) {
|
||||
startLoading();
|
||||
} else {
|
||||
stopLoading();
|
||||
updateIcon();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::onWlanConnectStatusToChangeTrayIcon(int state)
|
||||
void MainWindow::onWirelessStateChange(QString deviceName, QString ssid, QString uuid, KyConnectState state)
|
||||
{
|
||||
qDebug() << "wlan state:" << state << Q_FUNC_INFO << __LINE__;
|
||||
if (state==1 || state==3){
|
||||
m_wlanIsLoading = true;
|
||||
iconTimer->start(LOADING_TRAYICON_TIMER_MS);
|
||||
Q_UNUSED(deviceName)
|
||||
Q_UNUSED(ssid)
|
||||
Q_UNUSED(uuid)
|
||||
if (state == CONNECT_STATE_ACTIVATING
|
||||
|| state == CONNECT_STATE_DEACTIVATING) {
|
||||
startLoading();
|
||||
} else {
|
||||
if (m_wlanWidget->checkWlanStatus(NetworkManager::ActiveConnection::State::Activating)) {
|
||||
return;
|
||||
}
|
||||
m_wlanIsLoading = false;
|
||||
if (m_lanIsLoading == false) {
|
||||
onRefreshTrayIcon();
|
||||
}
|
||||
stopLoading();
|
||||
updateIcon();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -641,19 +772,6 @@ void MainWindow::onShowMainWindow(int type)
|
|||
}
|
||||
}
|
||||
|
||||
void MainWindow::onConnectivityChanged(NetworkManager::Connectivity connectivity)
|
||||
{
|
||||
if (!m_trayIcon) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (iconStatus == ACTIVATING) {
|
||||
return;
|
||||
}
|
||||
|
||||
onRefreshTrayIcon();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief MainWindow::keyPressEvent 按esc键关闭主界面
|
||||
* @param event
|
||||
|
@ -681,7 +799,7 @@ bool MainWindow::eventFilter(QObject *watched, QEvent *event)
|
|||
}
|
||||
return QMainWindow::eventFilter(watched,event);
|
||||
}
|
||||
|
||||
#if 0
|
||||
/**
|
||||
* @brief MainWindow::getWirelessList 获取wifi列表,供dbus调用
|
||||
* @param map
|
||||
|
@ -689,9 +807,9 @@ bool MainWindow::eventFilter(QObject *watched, QEvent *event)
|
|||
void MainWindow::getWirelessList(QMap<QString, QVector<QStringList> > &map)
|
||||
{
|
||||
map.clear();
|
||||
if (nullptr != m_wlanWidget) {
|
||||
m_wlanWidget->getWirelessList(map);
|
||||
}
|
||||
// if (nullptr != m_wlanWidget) {
|
||||
// m_wlanWidget->getWirelessList(map);
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -701,9 +819,9 @@ void MainWindow::getWirelessList(QMap<QString, QVector<QStringList> > &map)
|
|||
void MainWindow::getWiredList(QMap<QString, QVector<QStringList>> &map)
|
||||
{
|
||||
map.clear();
|
||||
if (nullptr != m_lanWidget) {
|
||||
m_lanWidget->getWiredList(map);
|
||||
}
|
||||
// if (nullptr != m_lanWidget) {
|
||||
// m_lanWidget->getWiredList(map);
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -714,7 +832,7 @@ void MainWindow::getWiredList(QMap<QString, QVector<QStringList>> &map)
|
|||
*/
|
||||
void MainWindow::activeWirelessAp(const QString apName, const QString apPassword, const QString band, const QString apDevice)
|
||||
{
|
||||
m_wlanWidget->activeWirelessAp(apName, apPassword, band, apDevice);
|
||||
// m_wlanWidget->activeWirelessAp(apName, apPassword, band, apDevice);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -723,7 +841,7 @@ void MainWindow::activeWirelessAp(const QString apName, const QString apPassword
|
|||
*/
|
||||
void MainWindow::deactiveWirelessAp(const QString apName, const QString uuid)
|
||||
{
|
||||
m_wlanWidget->deactiveWirelessAp(apName, uuid);
|
||||
// m_wlanWidget->deactiveWirelessAp(apName, uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -732,24 +850,25 @@ void MainWindow::deactiveWirelessAp(const QString apName, const QString uuid)
|
|||
*/
|
||||
void MainWindow::getApInfoBySsid(QString devName, QString ssid, QStringList &list)
|
||||
{
|
||||
m_wlanWidget->getApInfoBySsid(devName, ssid, list);
|
||||
// m_wlanWidget->getApInfoBySsid(devName, ssid, list);
|
||||
}
|
||||
|
||||
void MainWindow::getStoredApInfo(QStringList &list)
|
||||
{
|
||||
m_wlanWidget->getStoredApInfo(list);
|
||||
// m_wlanWidget->getStoredApInfo(list);
|
||||
}
|
||||
|
||||
//无线开关
|
||||
void MainWindow::setWirelessSwitchEnable(bool enable)
|
||||
{
|
||||
m_wlanWidget->setWirelessSwitchEnable(enable);
|
||||
// m_wlanWidget->setWirelessSwitchEnable(enable);
|
||||
}
|
||||
|
||||
void MainWindow::setWiredDeviceEnable(const QString& devName, bool enable)
|
||||
{
|
||||
m_lanWidget->setWiredDeviceEnable(devName, enable);
|
||||
// m_lanWidget->setWiredDeviceEnable(devName, enable);
|
||||
}
|
||||
|
||||
void MainWindow::showPropertyWidget(QString devName, QString ssid)
|
||||
{
|
||||
KyNetworkDeviceResourse *devResourse = new KyNetworkDeviceResourse();
|
||||
|
@ -825,47 +944,48 @@ void MainWindow::showAddOtherWlanWidget(QString devName)
|
|||
|
||||
void MainWindow::getWirelessDeviceCap(QMap<QString, int> &map)
|
||||
{
|
||||
m_wlanWidget->getWirelessDeviceCap(map);
|
||||
// m_wlanWidget->getWirelessDeviceCap(map);
|
||||
}
|
||||
|
||||
//有线连接删除
|
||||
void MainWindow::deleteWired(const QString &connUuid)
|
||||
{
|
||||
m_lanWidget->deleteWired(connUuid);
|
||||
// m_lanWidget->deleteWired(connUuid);
|
||||
}
|
||||
|
||||
//有线连接断开
|
||||
void MainWindow::activateWired(const QString& devName, const QString& connUuid)
|
||||
{
|
||||
m_lanWidget->activateWired(devName, connUuid);
|
||||
// m_lanWidget->activateWired(devName, connUuid);
|
||||
}
|
||||
void MainWindow::deactivateWired(const QString& devName, const QString& connUuid)
|
||||
{
|
||||
m_lanWidget->deactivateWired(devName, connUuid);
|
||||
// m_lanWidget->deactivateWired(devName, connUuid);
|
||||
}
|
||||
|
||||
//无线连接断开
|
||||
void MainWindow::activateWireless(const QString& devName, const QString& ssid)
|
||||
{
|
||||
m_wlanWidget->activateWirelessConnection(devName, ssid);
|
||||
// m_wlanWidget->activateWirelessConnection(devName, ssid);
|
||||
}
|
||||
|
||||
void MainWindow::deactivateWireless(const QString& devName, const QString& ssid)
|
||||
{
|
||||
m_wlanWidget->deactivateWirelessConnection(devName, ssid);
|
||||
// m_wlanWidget->deactivateWirelessConnection(devName, ssid);
|
||||
}
|
||||
|
||||
void MainWindow::rescan()
|
||||
{
|
||||
m_wlanWidget->requestScan();
|
||||
// m_wlanWidget->requestScan();
|
||||
}
|
||||
|
||||
void MainWindow::keyRingInit()
|
||||
{
|
||||
agent_init();
|
||||
// agent_init();
|
||||
}
|
||||
|
||||
void MainWindow::keyRingClear()
|
||||
{
|
||||
agent_clear();
|
||||
// agent_clear();
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -11,28 +11,28 @@
|
|||
#include <QDBusInterface>
|
||||
#include <QMap>
|
||||
#include <QScreen>
|
||||
#include "lanpage.h"
|
||||
#include "wlanpage.h"
|
||||
#include "netdetails/netdetail.h"
|
||||
#include <QHBoxLayout>
|
||||
#include <QLabel>
|
||||
#include <QThread>
|
||||
#include <QPluginLoader>
|
||||
#include <kylin-nm/kylin-nm-interface.h>
|
||||
#include <kylin-nm/kylinnetworkmanager.h>
|
||||
//安全中心-网络防火墙模式配置
|
||||
#include "networkmodeconfig.h"
|
||||
|
||||
#ifdef WITHKYSEC
|
||||
#include <kysec/libkysec.h>
|
||||
#include <kysec/status.h>
|
||||
#endif
|
||||
|
||||
enum IconActiveType {
|
||||
NOT_CONNECTED = 0,
|
||||
LAN_CONNECTED,
|
||||
WLAN_CONNECTED,
|
||||
LAN_CONNECTED_LIMITED,
|
||||
WLAN_CONNECTED_LIMITED,
|
||||
ACTIVATING,
|
||||
enum DeviceType
|
||||
{
|
||||
WIRED,
|
||||
WIRELESS
|
||||
};
|
||||
|
||||
const QByteArray TRANSPARENCY_GSETTINGS = "org.ukui.control-center.personalise";
|
||||
|
||||
class LanPage;
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -44,7 +44,7 @@ public:
|
|||
void setWiredDefaultDevice(QString deviceName);
|
||||
void setWirelessDefaultDevice(QString deviceName);
|
||||
|
||||
//for dbus
|
||||
#if 0
|
||||
void getWirelessList(QMap<QString, QVector<QStringList> > &map);
|
||||
void getWiredList(QMap<QString, QVector<QStringList>> &map);
|
||||
//开启热点
|
||||
|
@ -54,6 +54,7 @@ public:
|
|||
//获取热点
|
||||
void getStoredApInfo(QStringList &list);
|
||||
void getApInfoBySsid(QString devName, QString ssid, QStringList &list);
|
||||
|
||||
//删除有线连接
|
||||
void deleteWired(const QString& connUuid);
|
||||
//有线连接断开
|
||||
|
@ -63,16 +64,16 @@ public:
|
|||
void activateWireless(const QString& devName, const QString& ssid);
|
||||
void deactivateWireless(const QString& devName, const QString& ssid);
|
||||
//无线总开关
|
||||
void setWirelessSwitchEnable(bool enable);
|
||||
// void setWirelessSwitchEnable(bool enable);
|
||||
|
||||
void setWiredDeviceEnable(const QString& devName, bool enable);
|
||||
|
||||
//唤起属性页 根据网卡类型 参数2 为ssid/uuid
|
||||
void showPropertyWidget(QString devName, QString ssid);
|
||||
// void showPropertyWidget(QString devName, QString ssid);
|
||||
//唤起新建有线连接界面
|
||||
void showCreateWiredConnectWidget(const QString devName);
|
||||
// void showCreateWiredConnectWidget(const QString devName);
|
||||
//唤起加入其他无线网络界面
|
||||
void showAddOtherWlanWidget(QString devName);
|
||||
// void showAddOtherWlanWidget(QString devName);
|
||||
|
||||
void getWirelessDeviceCap(QMap<QString, int> &map);
|
||||
|
||||
|
@ -80,8 +81,10 @@ public:
|
|||
|
||||
void keyRingInit();
|
||||
void keyRingClear();
|
||||
|
||||
#endif
|
||||
signals:
|
||||
void mainWindowVisibleChanged(const bool &visible);
|
||||
#if 0
|
||||
//设备插拔
|
||||
void deviceStatusChanged();
|
||||
//设备名称变化
|
||||
|
@ -96,18 +99,16 @@ signals:
|
|||
void lanActiveConnectionStateChanged(QString devName, QString uuid, int status);
|
||||
void activateFailed(QString errorMessage);
|
||||
void deactivateFailed(QString errorMessage);
|
||||
//热点断开
|
||||
热点断开
|
||||
void hotspotDeactivated(QString devName, QString ssid);
|
||||
void hotspotActivated(QString devName, QString ssid, QString uuid);
|
||||
//信号强度变化
|
||||
void signalStrengthChange(QString devName, QString ssid, int strength);
|
||||
//安全性变化
|
||||
void secuTypeChange(QString devName, QString ssid, QString secuType);
|
||||
void mainWindowVisibleChanged(const bool &visible);
|
||||
//列表排序
|
||||
void timeToUpdate();
|
||||
public slots:
|
||||
|
||||
#endif
|
||||
protected:
|
||||
void keyPressEvent(QKeyEvent *event);
|
||||
bool eventFilter(QObject *watched, QEvent *event) override;
|
||||
|
@ -131,11 +132,13 @@ private:
|
|||
void resetWindowTheme();
|
||||
void showControlCenter();
|
||||
void showByWaylandHelper();
|
||||
void loadLanPlugin(); //加载有线网络插件
|
||||
void loadWlanPlugin(); //加载无线网络插件
|
||||
void startLoading();
|
||||
void stopLoading();
|
||||
|
||||
double m_transparency=1.0; //透明度
|
||||
QGSettings * m_transGsettings; //透明度配置文件
|
||||
int currentIconIndex=0;
|
||||
QList<QIcon> loadIcons;
|
||||
QTimer *iconTimer = nullptr;
|
||||
|
||||
//主窗口的主要构成控件
|
||||
QTabWidget * m_centralWidget = nullptr;
|
||||
|
@ -143,8 +146,8 @@ private:
|
|||
QLabel * m_lanLabel = nullptr;
|
||||
QLabel * m_wlanLabel = nullptr;
|
||||
|
||||
LanPage * m_lanWidget = nullptr;
|
||||
WlanPage * m_wlanWidget = nullptr;
|
||||
QWidget * m_lanWidget = nullptr;
|
||||
QWidget * m_wlanWidget = nullptr;
|
||||
|
||||
//监听主题的Gsettings
|
||||
QGSettings * m_styleGsettings = nullptr;
|
||||
|
@ -166,10 +169,15 @@ private:
|
|||
|
||||
bool m_isShowInCenter = false;
|
||||
|
||||
IconActiveType iconStatus = IconActiveType::NOT_CONNECTED;
|
||||
QTimer * m_loadingTimer = nullptr;
|
||||
QTimer * m_refreshTimer = nullptr;
|
||||
QList<QIcon> m_loadIcons;
|
||||
int m_currentIconIndex=0;
|
||||
KyConnectStatus m_iconStatus;
|
||||
KyNetworkManager * m_manager = nullptr;
|
||||
QThread * m_thread = nullptr;
|
||||
|
||||
QMap<QString, NetDetail*> m_createPagePtrMap;
|
||||
QMap<QString, NetDetail*> m_addOtherPagePtrMap;
|
||||
NetworkModeConfig *m_networkMode;
|
||||
|
||||
public slots:
|
||||
void onShowMainWindow(int type);
|
||||
|
@ -180,11 +188,10 @@ private slots:
|
|||
void onShowMainwindowActionTriggled();
|
||||
void onShowSettingsActionTriggled();
|
||||
void onThemeChanged(const QString &key);
|
||||
void onRefreshTrayIcon();
|
||||
void onSetTrayIconLoading();
|
||||
void onLanConnectStatusToChangeTrayIcon(int state);
|
||||
void onWlanConnectStatusToChangeTrayIcon(int state);
|
||||
void onConnectivityChanged(NetworkManager::Connectivity connectivity);
|
||||
void updateIcon();
|
||||
void onWiredStateChange(QString deviceName, QString uuid, KyConnectState state);
|
||||
void onWirelessStateChange(QString deviceName, QString ssid, QString uuid, KyConnectState state);
|
||||
void onTabletModeChanged(bool mode);
|
||||
};
|
||||
|
||||
|
|
54
src/main.cpp
54
src/main.cpp
|
@ -17,20 +17,26 @@
|
|||
*/
|
||||
|
||||
#include "mainwindow.h"
|
||||
#include "dbusadaptor.h"
|
||||
//#include "dbusadaptor.h"
|
||||
#include <QTranslator>
|
||||
#include <QLocale>
|
||||
#include "qt-single-application.h"
|
||||
#include <QDebug>
|
||||
#include <QDesktopWidget>
|
||||
#include <QFile>
|
||||
#include <QDateTime>
|
||||
#include <QStandardPaths>
|
||||
#include <QCommandLineParser>
|
||||
#include <QCommandLineOption>
|
||||
#include <ukui-log4qt.h>
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||
#include "xatom-helper.h"
|
||||
#endif
|
||||
|
||||
#include "vpnobject.h"
|
||||
#include "vpndbusadaptor.h"
|
||||
//#include "vpnobject.h"
|
||||
//#include "vpndbusadaptor.h"
|
||||
#include "kylinnmdbus.h"
|
||||
#include "kylinnmuidbus.h"
|
||||
|
||||
#define LOG_IDENT "ukui_kylin_nm"
|
||||
|
||||
|
@ -119,11 +125,11 @@ int main(int argc, char *argv[])
|
|||
return 0;
|
||||
}
|
||||
|
||||
QThread thread;
|
||||
KyNetworkResourceManager *p_networkResource = KyNetworkResourceManager::getInstance();
|
||||
p_networkResource->moveToThread(&thread);
|
||||
QObject::connect(&thread, SIGNAL(started()), p_networkResource, SLOT(onInitNetwork()));
|
||||
thread.start();
|
||||
// QThread thread;
|
||||
// KyNetworkResourceManager *p_networkResource = KyNetworkResourceManager::getInstance();
|
||||
// p_networkResource->moveToThread(&thread);
|
||||
// QObject::connect(&thread, SIGNAL(started()), p_networkResource, SLOT(onInitNetwork()));
|
||||
// thread.start();
|
||||
|
||||
// Internationalization
|
||||
QString locale = QLocale::system().name();
|
||||
|
@ -146,31 +152,41 @@ int main(int argc, char *argv[])
|
|||
qWarning() << "QtBase Translations load fail";
|
||||
}
|
||||
|
||||
while (!p_networkResource->NetworkManagerIsInited()) {
|
||||
::usleep(1000);
|
||||
}
|
||||
// while (!p_networkResource->NetworkManagerIsInited()) {
|
||||
// ::usleep(1000);
|
||||
// }
|
||||
|
||||
MainWindow w;
|
||||
a.setActivationWindow(&w);
|
||||
w.setProperty("useStyleWindowManager", false); //禁用拖动
|
||||
|
||||
vpnObject vnpobject;
|
||||
// vpnObject vnpobject;
|
||||
|
||||
w.setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint/* | Qt::X11BypassWindowManagerHint*/);
|
||||
|
||||
|
||||
DbusAdaptor adaptor(&w);
|
||||
Q_UNUSED(adaptor);
|
||||
// DbusAdaptor adaptor(&w);
|
||||
// Q_UNUSED(adaptor);
|
||||
|
||||
VpnDbusAdaptor vpnAdaptor(&vnpobject);
|
||||
Q_UNUSED(vpnAdaptor);
|
||||
// VpnDbusAdaptor vpnAdaptor(&vnpobject);
|
||||
// Q_UNUSED(vpnAdaptor);
|
||||
|
||||
auto connection = QDBusConnection::sessionBus();
|
||||
if (!connection.registerService("com.kylin.network")
|
||||
|| !connection.registerObject("/com/kylin/network", &w)
|
||||
|| !connection.registerObject("/com/kylin/vpnTool", &vnpobject)) {
|
||||
// if (!connection.registerService("com.kylin.network")
|
||||
// || !connection.registerObject("/com/kylin/network", &w)
|
||||
// || !connection.registerObject("/com/kylin/vpnTool", &vnpobject)) {
|
||||
// qCritical() << "QDbus register service failed reason:" << connection.lastError();
|
||||
// }
|
||||
if (!connection.registerService("com.kylin.network")) {
|
||||
qCritical() << "QDbus register service failed reason:" << connection.lastError();
|
||||
}
|
||||
KylinNmDbus dbusObject(&w);
|
||||
//注册对象路径,把类KylinNmDbus所有槽函数导出为object的method
|
||||
connection.registerObject("/com/kylin/network", &dbusObject,
|
||||
QDBusConnection::ExportAllSlots| QDBusConnection :: ExportAllSignals);
|
||||
KylinNmUiDbus uiDbusObject(&w);
|
||||
connection.registerObject("/com/kylin/network/interface", &uiDbusObject,
|
||||
QDBusConnection::ExportAllSlots| QDBusConnection :: ExportAllSignals);
|
||||
|
||||
return a.exec();
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
#include <QDBusInterface>
|
||||
#include <QDBusReply>
|
||||
#include <QMainWindow>
|
||||
#include "../mainwindow.h"
|
||||
#include "../frontend/mainwindow.h"
|
||||
|
||||
|
||||
/*!
|
||||
|
|
|
@ -15,7 +15,7 @@ CONFIG += c++14 qt warn_on link_pkgconfig
|
|||
#CONFIG += release
|
||||
|
||||
PKGCONFIG +=gio-2.0 glib-2.0 gio-unix-2.0 libnm libnma libsecret-1 gtk+-3.0 gsettings-qt libcap kysdk-qtwidgets kysdk-waylandhelper
|
||||
PKGCONFIG +=kysdk-sysinfo
|
||||
PKGCONFIG +=kysdk-sysinfo kylin-nm-base
|
||||
|
||||
INCLUDEPATH += /usr/include/KF5/NetworkManagerQt
|
||||
|
||||
|
@ -50,8 +50,9 @@ QMAKE_CXXFLAGS *= $(shell dpkg-buildflags --get CXXFLAGS)
|
|||
QMAKE_LFLAGS *= $(shell dpkg-buildflags --get LDFLAGS)
|
||||
|
||||
include(singleapplication/qt-single-application.pri)
|
||||
include(backend/backend.pri)
|
||||
#include(backend/backend.pri)
|
||||
include(frontend/frontend.pri)
|
||||
include(kylin-nm-dbus/kylin-nm-dbus.pri)
|
||||
|
||||
RESOURCES += \
|
||||
../nmqrc.qrc
|
||||
|
|
Loading…
Reference in New Issue