From 8c313015053ba7eae8910e20cb7dc2f6e2e9ce9d Mon Sep 17 00:00:00 2001 From: Dong Hualin Date: Thu, 2 Sep 2021 13:10:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BD=91=E7=BB=9C=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除network目录下的所有文件,将其放到dde-network-core插件中,作为网络库的一个插件,删除相关文件对网络模块的引用 Log: 提取单独的网络模块作为插件 Task: https://pms.uniontech.com/zentao/task-view-84600.html Change-Id: Ia402d74297fbd944ac254bfacfa48b43061b6e5f --- debian/control | 2 - frame/CMakeLists.txt | 1 - frame/accessible/accessible.h | 7 +- frame/main.cpp | 5 - plugins/CMakeLists.txt | 1 - plugins/network/CMakeLists.txt | 45 - plugins/network/item/applet/accesspoint.cpp | 107 -- plugins/network/item/applet/accesspoint.h | 59 - .../network/item/applet/accesspointwidget.cpp | 239 --- .../network/item/applet/accesspointwidget.h | 100 -- .../item/applet/devicecontrolwidget.cpp | 133 -- .../network/item/applet/devicecontrolwidget.h | 60 - plugins/network/item/applet/wirelesslist.cpp | 468 ----- plugins/network/item/applet/wirelesslist.h | 103 -- plugins/network/item/deviceitem.cpp | 110 -- plugins/network/item/deviceitem.h | 60 - plugins/network/item/wireditem.cpp | 311 ---- plugins/network/item/wireditem.h | 97 - plugins/network/item/wirelessitem.cpp | 236 --- plugins/network/item/wirelessitem.h | 102 -- plugins/network/network.json | 4 - plugins/network/network.qrc | 150 -- plugins/network/networkitem.cpp | 1569 ----------------- plugins/network/networkitem.h | 147 -- plugins/network/networkplugin.cpp | 268 --- plugins/network/networkplugin.h | 80 - .../network/resources/common/list_select.png | Bin 508 -> 0 bytes .../resources/common/list_select@2x.png | Bin 1176 -> 0 bytes .../resources/common/notify_close_press.png | Bin 398 -> 0 bytes .../common/notify_close_press@2x.png | Bin 749 -> 0 bytes .../wired/network-disabled-symbolic-dark.svg | 6 - .../wired/network-disabled-symbolic.svg | 6 - .../wired/network-error-symbolic-dark.svg | 6 - .../wired/network-error-symbolic.svg | 6 - .../wired/network-none-symbolic-dark.svg | 3 - .../resources/wired/network-none-symbolic.svg | 3 - .../wired/network-offline-symbolic.svg | 3 - .../wired/network-online-symbolic-dark.svg | 1 - .../wired/network-online-symbolic.svg | 1 - .../wired/network-warning-symbolic-dark.svg | 6 - .../wired/network-warning-symbolic.svg | 6 - ...etwork-wired-symbolic-connecting1-dark.svg | 3 - .../network-wired-symbolic-connecting1.svg | 13 - ...etwork-wired-symbolic-connecting2-dark.svg | 3 - .../network-wired-symbolic-connecting2.svg | 13 - ...etwork-wired-symbolic-connecting3-dark.svg | 3 - .../network-wired-symbolic-connecting3.svg | 13 - ...etwork-wired-symbolic-connecting4-dark.svg | 3 - .../network-wired-symbolic-connecting4.svg | 13 - ...etwork-wired-symbolic-connecting5-dark.svg | 3 - .../network-wired-symbolic-connecting5.svg | 13 - .../wired/network-wired-symbolic-dark.svg | 3 - .../wired/network-wired-symbolic.svg | 3 - .../network/resources/wireless/disconnect.svg | 3 - .../resources/wireless/disconnect_dark.svg | 3 - .../network/resources/wireless/refresh.svg | 3 - .../resources/wireless/refresh_dark.svg | 3 - .../network/resources/wireless/security.svg | 3 - .../resources/wireless/security_dark.svg | 3 - plugins/network/resources/wireless/select.svg | 3 - .../resources/wireless/select_dark.svg | 3 - .../wireless/spinner14/Spinner01.png | Bin 181 -> 0 bytes .../wireless/spinner14/Spinner02.png | Bin 183 -> 0 bytes .../wireless/spinner14/Spinner03.png | Bin 198 -> 0 bytes .../wireless/spinner14/Spinner04.png | Bin 192 -> 0 bytes .../wireless/spinner14/Spinner05.png | Bin 201 -> 0 bytes .../wireless/spinner14/Spinner06.png | Bin 224 -> 0 bytes .../wireless/spinner14/Spinner07.png | Bin 240 -> 0 bytes .../wireless/spinner14/Spinner08.png | Bin 262 -> 0 bytes .../wireless/spinner14/Spinner09.png | Bin 255 -> 0 bytes .../wireless/spinner14/Spinner10.png | Bin 303 -> 0 bytes .../wireless/spinner14/Spinner11.png | Bin 301 -> 0 bytes .../wireless/spinner14/Spinner12.png | Bin 327 -> 0 bytes .../wireless/spinner14/Spinner13.png | Bin 321 -> 0 bytes .../wireless/spinner14/Spinner14.png | Bin 306 -> 0 bytes .../wireless/spinner14/Spinner15.png | Bin 340 -> 0 bytes .../wireless/spinner14/Spinner16.png | Bin 368 -> 0 bytes .../wireless/spinner14/Spinner17.png | Bin 378 -> 0 bytes .../wireless/spinner14/Spinner18.png | Bin 384 -> 0 bytes .../wireless/spinner14/Spinner19.png | Bin 410 -> 0 bytes .../wireless/spinner14/Spinner20.png | Bin 392 -> 0 bytes .../wireless/spinner14/Spinner21.png | Bin 403 -> 0 bytes .../wireless/spinner14/Spinner22.png | Bin 417 -> 0 bytes .../wireless/spinner14/Spinner23.png | Bin 426 -> 0 bytes .../wireless/spinner14/Spinner24.png | Bin 417 -> 0 bytes .../wireless/spinner14/Spinner25.png | Bin 443 -> 0 bytes .../wireless/spinner14/Spinner26.png | Bin 428 -> 0 bytes .../wireless/spinner14/Spinner27.png | Bin 424 -> 0 bytes .../wireless/spinner14/Spinner28.png | Bin 431 -> 0 bytes .../wireless/spinner14/Spinner29.png | Bin 446 -> 0 bytes .../wireless/spinner14/Spinner30.png | Bin 443 -> 0 bytes .../wireless/spinner14/Spinner31.png | Bin 436 -> 0 bytes .../wireless/spinner14/Spinner32.png | Bin 450 -> 0 bytes .../wireless/spinner14/Spinner33.png | Bin 438 -> 0 bytes .../wireless/spinner14/Spinner34.png | Bin 430 -> 0 bytes .../wireless/spinner14/Spinner35.png | Bin 438 -> 0 bytes .../wireless/spinner14/Spinner36.png | Bin 437 -> 0 bytes .../wireless/spinner14/Spinner37.png | Bin 440 -> 0 bytes .../wireless/spinner14/Spinner38.png | Bin 443 -> 0 bytes .../wireless/spinner14/Spinner39.png | Bin 436 -> 0 bytes .../wireless/spinner14/Spinner40.png | Bin 412 -> 0 bytes .../wireless/spinner14/Spinner41.png | Bin 406 -> 0 bytes .../wireless/spinner14/Spinner42.png | Bin 410 -> 0 bytes .../wireless/spinner14/Spinner43.png | Bin 388 -> 0 bytes .../wireless/spinner14/Spinner44.png | Bin 400 -> 0 bytes .../wireless/spinner14/Spinner45.png | Bin 394 -> 0 bytes .../wireless/spinner14/Spinner46.png | Bin 387 -> 0 bytes .../wireless/spinner14/Spinner47.png | Bin 367 -> 0 bytes .../wireless/spinner14/Spinner48.png | Bin 364 -> 0 bytes .../wireless/spinner14/Spinner49.png | Bin 327 -> 0 bytes .../wireless/spinner14/Spinner50.png | Bin 321 -> 0 bytes .../wireless/spinner14/Spinner51.png | Bin 302 -> 0 bytes .../wireless/spinner14/Spinner52.png | Bin 297 -> 0 bytes .../wireless/spinner14/Spinner53.png | Bin 292 -> 0 bytes .../wireless/spinner14/Spinner54.png | Bin 281 -> 0 bytes .../wireless/spinner14/Spinner55.png | Bin 263 -> 0 bytes .../wireless/spinner14/Spinner56.png | Bin 249 -> 0 bytes .../wireless/spinner14/Spinner57.png | Bin 253 -> 0 bytes .../wireless/spinner14/Spinner58.png | Bin 241 -> 0 bytes .../wireless/spinner14/Spinner59.png | Bin 229 -> 0 bytes .../wireless/spinner14/Spinner60.png | Bin 216 -> 0 bytes .../wireless/spinner14/Spinner61.png | Bin 208 -> 0 bytes .../wireless/spinner14/Spinner62.png | Bin 208 -> 0 bytes .../wireless/spinner14/Spinner63.png | Bin 183 -> 0 bytes .../wireless/spinner14/Spinner64.png | Bin 195 -> 0 bytes .../wireless/spinner14/Spinner65.png | Bin 185 -> 0 bytes .../wireless/spinner14/Spinner66.png | Bin 184 -> 0 bytes .../wireless/spinner14/Spinner67.png | Bin 184 -> 0 bytes .../wireless/spinner14/Spinner68.png | Bin 179 -> 0 bytes .../wireless/spinner14/Spinner69.png | Bin 174 -> 0 bytes .../wireless/spinner14/Spinner70.png | Bin 175 -> 0 bytes .../wireless/spinner14/Spinner71.png | Bin 175 -> 0 bytes .../wireless/spinner14/Spinner72.png | Bin 173 -> 0 bytes .../wireless/spinner14/Spinner73.png | Bin 175 -> 0 bytes .../wireless/spinner14/Spinner74.png | Bin 184 -> 0 bytes .../wireless/spinner14/Spinner75.png | Bin 160 -> 0 bytes .../wireless/spinner14/Spinner76.png | Bin 183 -> 0 bytes .../wireless/spinner14/Spinner77.png | Bin 164 -> 0 bytes .../wireless/spinner14/Spinner78.png | Bin 177 -> 0 bytes .../wireless/spinner14/Spinner79.png | Bin 174 -> 0 bytes .../wireless/spinner14/Spinner80.png | Bin 176 -> 0 bytes .../wireless/spinner14/Spinner81.png | Bin 168 -> 0 bytes .../wireless/spinner14/Spinner82.png | Bin 168 -> 0 bytes .../wireless/spinner14/Spinner83.png | Bin 184 -> 0 bytes .../wireless/spinner14/Spinner84.png | Bin 181 -> 0 bytes .../wireless/spinner14/Spinner85.png | Bin 179 -> 0 bytes .../wireless/spinner14/Spinner86.png | Bin 179 -> 0 bytes .../wireless/spinner14/Spinner87.png | Bin 183 -> 0 bytes .../wireless/spinner14/Spinner88.png | Bin 181 -> 0 bytes .../wireless/spinner14/Spinner89.png | Bin 180 -> 0 bytes .../wireless/spinner14/Spinner90.png | Bin 182 -> 0 bytes .../wireless/wireless-0-symbolic-dark.svg | 3 - .../wireless/wireless-0-symbolic.svg | 3 - .../wireless/wireless-20-symbolic-dark.svg | 6 - .../wireless/wireless-20-symbolic.svg | 8 - .../wireless/wireless-40-symbolic-dark.svg | 10 - .../wireless/wireless-40-symbolic.svg | 10 - .../wireless/wireless-60-symbolic-dark.svg | 6 - .../wireless/wireless-60-symbolic.svg | 6 - .../wireless/wireless-80-symbolic-dark.svg | 3 - .../wireless/wireless-80-symbolic.svg | 3 - .../wireless/wireless-background.svg | 18 - .../wireless-disabled-symbolic-dark.svg | 3 - .../wireless/wireless-disabled-symbolic.svg | 3 - .../wireless/wireless-disconnect-symbolic.svg | 12 - .../wireless/wireless-disconnect.svg | 14 - plugins/tray/CMakeLists.txt | 3 - 167 files changed, 1 insertion(+), 4731 deletions(-) delete mode 100644 plugins/network/CMakeLists.txt delete mode 100644 plugins/network/item/applet/accesspoint.cpp delete mode 100644 plugins/network/item/applet/accesspoint.h delete mode 100644 plugins/network/item/applet/accesspointwidget.cpp delete mode 100644 plugins/network/item/applet/accesspointwidget.h delete mode 100644 plugins/network/item/applet/devicecontrolwidget.cpp delete mode 100644 plugins/network/item/applet/devicecontrolwidget.h delete mode 100644 plugins/network/item/applet/wirelesslist.cpp delete mode 100644 plugins/network/item/applet/wirelesslist.h delete mode 100644 plugins/network/item/deviceitem.cpp delete mode 100644 plugins/network/item/deviceitem.h delete mode 100644 plugins/network/item/wireditem.cpp delete mode 100644 plugins/network/item/wireditem.h delete mode 100644 plugins/network/item/wirelessitem.cpp delete mode 100644 plugins/network/item/wirelessitem.h delete mode 100644 plugins/network/network.json delete mode 100644 plugins/network/network.qrc delete mode 100644 plugins/network/networkitem.cpp delete mode 100644 plugins/network/networkitem.h delete mode 100644 plugins/network/networkplugin.cpp delete mode 100644 plugins/network/networkplugin.h delete mode 100644 plugins/network/resources/common/list_select.png delete mode 100644 plugins/network/resources/common/list_select@2x.png delete mode 100644 plugins/network/resources/common/notify_close_press.png delete mode 100644 plugins/network/resources/common/notify_close_press@2x.png delete mode 100644 plugins/network/resources/wired/network-disabled-symbolic-dark.svg delete mode 100644 plugins/network/resources/wired/network-disabled-symbolic.svg delete mode 100644 plugins/network/resources/wired/network-error-symbolic-dark.svg delete mode 100644 plugins/network/resources/wired/network-error-symbolic.svg delete mode 100644 plugins/network/resources/wired/network-none-symbolic-dark.svg delete mode 100644 plugins/network/resources/wired/network-none-symbolic.svg delete mode 100644 plugins/network/resources/wired/network-offline-symbolic.svg delete mode 120000 plugins/network/resources/wired/network-online-symbolic-dark.svg delete mode 120000 plugins/network/resources/wired/network-online-symbolic.svg delete mode 100644 plugins/network/resources/wired/network-warning-symbolic-dark.svg delete mode 100644 plugins/network/resources/wired/network-warning-symbolic.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic-connecting1-dark.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic-connecting1.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic-connecting2-dark.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic-connecting2.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic-connecting3-dark.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic-connecting3.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic-connecting4-dark.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic-connecting4.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic-connecting5-dark.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic-connecting5.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic-dark.svg delete mode 100644 plugins/network/resources/wired/network-wired-symbolic.svg delete mode 100644 plugins/network/resources/wireless/disconnect.svg delete mode 100644 plugins/network/resources/wireless/disconnect_dark.svg delete mode 100644 plugins/network/resources/wireless/refresh.svg delete mode 100644 plugins/network/resources/wireless/refresh_dark.svg delete mode 100644 plugins/network/resources/wireless/security.svg delete mode 100644 plugins/network/resources/wireless/security_dark.svg delete mode 100644 plugins/network/resources/wireless/select.svg delete mode 100644 plugins/network/resources/wireless/select_dark.svg delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner01.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner02.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner03.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner04.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner05.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner06.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner07.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner08.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner09.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner10.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner11.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner12.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner13.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner14.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner15.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner16.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner17.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner18.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner19.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner20.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner21.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner22.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner23.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner24.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner25.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner26.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner27.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner28.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner29.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner30.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner31.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner32.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner33.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner34.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner35.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner36.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner37.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner38.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner39.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner40.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner41.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner42.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner43.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner44.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner45.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner46.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner47.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner48.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner49.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner50.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner51.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner52.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner53.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner54.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner55.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner56.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner57.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner58.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner59.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner60.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner61.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner62.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner63.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner64.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner65.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner66.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner67.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner68.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner69.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner70.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner71.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner72.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner73.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner74.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner75.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner76.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner77.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner78.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner79.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner80.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner81.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner82.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner83.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner84.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner85.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner86.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner87.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner88.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner89.png delete mode 100644 plugins/network/resources/wireless/spinner14/Spinner90.png delete mode 100644 plugins/network/resources/wireless/wireless-0-symbolic-dark.svg delete mode 100644 plugins/network/resources/wireless/wireless-0-symbolic.svg delete mode 100644 plugins/network/resources/wireless/wireless-20-symbolic-dark.svg delete mode 100644 plugins/network/resources/wireless/wireless-20-symbolic.svg delete mode 100644 plugins/network/resources/wireless/wireless-40-symbolic-dark.svg delete mode 100644 plugins/network/resources/wireless/wireless-40-symbolic.svg delete mode 100644 plugins/network/resources/wireless/wireless-60-symbolic-dark.svg delete mode 100644 plugins/network/resources/wireless/wireless-60-symbolic.svg delete mode 100644 plugins/network/resources/wireless/wireless-80-symbolic-dark.svg delete mode 100644 plugins/network/resources/wireless/wireless-80-symbolic.svg delete mode 100644 plugins/network/resources/wireless/wireless-background.svg delete mode 100644 plugins/network/resources/wireless/wireless-disabled-symbolic-dark.svg delete mode 100644 plugins/network/resources/wireless/wireless-disabled-symbolic.svg delete mode 100644 plugins/network/resources/wireless/wireless-disconnect-symbolic.svg delete mode 100644 plugins/network/resources/wireless/wireless-disconnect.svg diff --git a/debian/control b/debian/control index 835847f7d..b1c7b2e03 100644 --- a/debian/control +++ b/debian/control @@ -21,7 +21,6 @@ Build-Depends: debhelper (>= 8.0.0), libdtkcore5-bin (>=5.4.14), libdtkgui-dev (>=5.4.13), libdframeworkdbus-dev (>=5.4.6), - libdde-network-utils-dev (>=5.4.6), libgsettings-qt-dev, libdbusmenu-qt5-dev, libgtest-dev, @@ -37,7 +36,6 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, libdtkcore5 (>=5.4.14), libdtkgui5 (>=5.4.13), libdframeworkdbus2 (>=5.4.6), - libdde-network-utils (>=5.4.6), dde-qt5xcb-plugin (>=5.0.25), dde-daemon (>=5.13.12), startdde (>=5.8.9), diff --git a/frame/CMakeLists.txt b/frame/CMakeLists.txt index 9c480680e..9f559eec4 100644 --- a/frame/CMakeLists.txt +++ b/frame/CMakeLists.txt @@ -52,7 +52,6 @@ target_include_directories(${BIN_NAME} PUBLIC xcb ../plugins/tray ../plugins/show-desktop - ../plugins/network ../plugins/datetime ../plugins/onboard ../plugins/trash diff --git a/frame/accessible/accessible.h b/frame/accessible/accessible.h index 0428461d0..800fe5e50 100644 --- a/frame/accessible/accessible.h +++ b/frame/accessible/accessible.h @@ -38,8 +38,6 @@ //#include "../plugins/sound/componments/horizontalseparator.h" #include "showdesktopwidget.h" -#include "networkitem.h" -#include "item/applet/devicecontrolwidget.h" #include "datetimewidget.h" #include "onboarditem.h" #include "trashwidget.h" @@ -47,6 +45,7 @@ #include "shutdownwidget.h" #include "multitaskingwidget.h" #include "overlaywarningwidget.h" +#include "horizontalseperator.h" #include #include @@ -114,9 +113,7 @@ SET_FORM_ACCESSIBLE(QScrollArea, "QScrollArea") SET_FORM_ACCESSIBLE(QFrame, "QFrame") SET_FORM_ACCESSIBLE(QGraphicsView, "QGraphicsView") SET_FORM_ACCESSIBLE(DragWidget, "DragWidget") -SET_FORM_ACCESSIBLE(NetworkItem, "NetworkItem") SET_FORM_ACCESSIBLE(StateButton, "StateButton") -SET_FORM_ACCESSIBLE(DeviceControlWidget, "DeviceControlWidget") QAccessibleInterface *accessibleFactory(const QString &classname, QObject *object) { @@ -181,9 +178,7 @@ QAccessibleInterface *accessibleFactory(const QString &classname, QObject *objec ELSE_USE_ACCESSIBLE(classname, QFrame) ELSE_USE_ACCESSIBLE(classname, QGraphicsView) ELSE_USE_ACCESSIBLE(classname, DragWidget) - ELSE_USE_ACCESSIBLE(classname, NetworkItem) ELSE_USE_ACCESSIBLE(classname, StateButton) - ELSE_USE_ACCESSIBLE(classname, DeviceControlWidget) ELSE_USE_ACCESSIBLE(classname, HorizontalSeperator); if (!interface && object->inherits("QWidget") && !ignoreLst.contains(classname)) { diff --git a/frame/main.cpp b/frame/main.cpp index 7865f5462..47c32cb8e 100644 --- a/frame/main.cpp +++ b/frame/main.cpp @@ -192,11 +192,6 @@ int main(int argc, char *argv[]) // 自动化标记由此开始 QAccessible::installFactory(accessibleFactory); - // load dde-network-utils translator - QTranslator translator; - translator.load("/usr/share/dde-network-utils/translations/dde-network-utils_" + QLocale::system().name()); - app.installTranslator(&translator); - // 设置日志输出到控制台以及文件 DLogManager::registerConsoleAppender(); DLogManager::registerFileAppender(); diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 33c46936a..245f1ee0f 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -1,6 +1,5 @@ add_subdirectory("datetime") #add_subdirectory("disk-mount") -add_subdirectory("network") add_subdirectory("shutdown") add_subdirectory("power") add_subdirectory("sound") diff --git a/plugins/network/CMakeLists.txt b/plugins/network/CMakeLists.txt deleted file mode 100644 index 71083c668..000000000 --- a/plugins/network/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ - -set(PLUGIN_NAME "network") - -project(${PLUGIN_NAME}) - -# Sources files -file(GLOB_RECURSE SRCS "*.h" "*.cpp" "../../widgets/*.h" "../../widgets/*.cpp" - "../../frame/util/imageutil.h" "../../frame/util/imageutil.cpp" - "../../frame/util/statebutton.h" "../../frame/util/statebutton.cpp" - "../../frame/util/horizontalseperator.h" "../../frame/util/horizontalseperator.cpp") - -find_package(PkgConfig REQUIRED) -find_package(Qt5Widgets REQUIRED) -find_package(Qt5Svg REQUIRED) -find_package(Qt5DBus REQUIRED) -find_package(DtkWidget REQUIRED) -find_package(Qt5Network REQUIRED) - -pkg_check_modules(DDE-Network-Utils REQUIRED dde-network-utils) -pkg_check_modules(DFrameworkDBus REQUIRED dframeworkdbus) -pkg_check_modules(QGSettings REQUIRED gsettings-qt) - -add_definitions("${QT_DEFINITIONS} -DQT_PLUGIN") -add_library(${PLUGIN_NAME} SHARED ${SRCS} network.qrc) -set_target_properties(${PLUGIN_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ../system-trays) -target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} - ${Qt5DBus_INCLUDE_DIRS} - ${DFrameworkDBus_INCLUDE_DIRS} - ${QGSettings_INCLUDE_DIRS} - ${DDE-Network-Utils_INCLUDE_DIRS} - ${Qt5Network_INCLUDE_DIRS} - ../../interfaces - ../../frame) -target_link_libraries(${PLUGIN_NAME} PRIVATE - ${DtkWidget_LIBRARIES} - ${Qt5Widgets_LIBRARIES} - ${Qt5Svg_LIBRARIES} - ${Qt5DBus_LIBRARIES} - ${QGSettings_LIBRARIES} - ${DDE-Network-Utils_LIBRARIES} - ${DFrameworkDBus_LIBRARIES} - ${Qt5Network_LIBRARIES} -) - -install(TARGETS ${PLUGIN_NAME} LIBRARY DESTINATION lib/dde-dock/plugins/system-trays) diff --git a/plugins/network/item/applet/accesspoint.cpp b/plugins/network/item/applet/accesspoint.cpp deleted file mode 100644 index 35bef37bd..000000000 --- a/plugins/network/item/applet/accesspoint.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "accesspoint.h" - -#include -#include - -AccessPoint::AccessPoint(const QJsonObject &apInfo) - : QObject(nullptr) -{ - loadApInfo(apInfo); -} - -AccessPoint::AccessPoint(const AccessPoint &ap) - : QObject(nullptr) -{ - *this = ap; -} - -AccessPoint::AccessPoint(const QString &info) -{ - const QJsonDocument doc = QJsonDocument::fromJson(info.toUtf8()); - Q_ASSERT(doc.isObject()); - loadApInfo(doc.object()); -} - -AccessPoint::AccessPoint() - : QObject(nullptr), - m_strength(0), - m_secured(false), - m_securedInEap(false) -{ -} - -bool AccessPoint::operator==(const AccessPoint &ap) const -{ - return m_ssid == ap.ssid(); -} - -bool AccessPoint::operator>(const AccessPoint &ap) const -{ - return m_strength > ap.m_strength; -} - -AccessPoint &AccessPoint::operator=(const AccessPoint &ap) -{ - m_strength = ap.m_strength; - m_secured = ap.m_secured; - m_securedInEap = ap.m_securedInEap; - m_path = ap.m_path; - m_ssid = ap.m_ssid; - - return *this; -} - -const QString AccessPoint::ssid() const -{ - return m_ssid; -} - -const QString AccessPoint::path() const -{ - return m_path; -} - -int AccessPoint::strength() const -{ - return m_strength; -} - -bool AccessPoint::secured() const -{ - return m_secured; -} - -bool AccessPoint::isEmpty() const -{ - return m_path.isEmpty(); -} - -void AccessPoint::loadApInfo(const QJsonObject &apInfo) -{ - m_strength = apInfo.value("Strength").toInt(); - m_secured = apInfo.value("Secured").toBool(); - m_securedInEap = apInfo.value("SecuredInEap").toBool(); - m_path = apInfo.value("Path").toString(); - m_ssid = apInfo.value("Ssid").toString(); -} diff --git a/plugins/network/item/applet/accesspoint.h b/plugins/network/item/applet/accesspoint.h deleted file mode 100644 index 2645e0fbe..000000000 --- a/plugins/network/item/applet/accesspoint.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef ACCESSPOINT_H -#define ACCESSPOINT_H - -#include -#include - -class AccessPoint : public QObject -{ - Q_OBJECT - -public: - explicit AccessPoint(const QJsonObject &apInfo); - explicit AccessPoint(const QString &info); - explicit AccessPoint(); - AccessPoint(const AccessPoint &ap); - bool operator==(const AccessPoint &ap) const; - bool operator>(const AccessPoint &ap) const; - AccessPoint &operator=(const AccessPoint &ap); - - const QString ssid() const; - const QString path() const; - int strength() const; - bool secured() const; - - bool isEmpty() const; - -private: - void loadApInfo(const QJsonObject &apInfo); - -private: - int m_strength; - bool m_secured; - bool m_securedInEap; - QString m_path; - QString m_ssid; -}; - -#endif // ACCESSPOINT_H diff --git a/plugins/network/item/applet/accesspointwidget.cpp b/plugins/network/item/applet/accesspointwidget.cpp deleted file mode 100644 index 2648d8615..000000000 --- a/plugins/network/item/applet/accesspointwidget.cpp +++ /dev/null @@ -1,239 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "accesspointwidget.h" -#include "horizontalseperator.h" -#include "util/utils.h" -#include "../frame/util/imageutil.h" -#include "../wireditem.h" -#include "constants.h" -#include "util/statebutton.h" - -#include -#include - -#include -#include -#include -#include -#include - -using namespace dde::network; - -DWIDGET_USE_NAMESPACE -DGUI_USE_NAMESPACE - -extern const QString DarkType; -extern const QString LightType; - -AccessPointWidget::AccessPointWidget(QWidget *parent) - : QFrame(parent) - , m_activeState(NetworkDevice::Unknown) - , m_ssidBtn(new SsidButton(this)) - , m_securityLabel(new QLabel(this)) - , m_strengthLabel(new QLabel(this)) - , m_stateButton(new StateButton(this)) - , m_isEnter(false) -{ - m_ssidBtn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - - m_ssidBtn->setObjectName("Ssid"); - m_ssidBtn->setForegroundRole(QPalette::BrightText); - - bool isLight = (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType); - - m_stateButton->setFixedSize(16, 16); - m_stateButton->setType(StateButton::Check); - m_stateButton->setVisible(false); - - auto pixpath = QString(":/wireless/resources/wireless/security"); - pixpath = isLight ? pixpath + DarkType : pixpath + LightType; - m_securityPixmap = Utils::renderSVG(pixpath, QSize(16, 16), devicePixelRatioF()); - m_securityIconSize = m_securityPixmap.size(); - m_securityLabel->setPixmap(m_securityPixmap); - m_securityLabel->setFixedSize(m_securityIconSize / devicePixelRatioF()); - - QHBoxLayout *infoLayout = new QHBoxLayout; - infoLayout->setMargin(0); - infoLayout->setSpacing(0); - infoLayout->addSpacing(12); - infoLayout->addWidget(m_securityLabel); - infoLayout->addSpacing(2); - infoLayout->addWidget(m_strengthLabel); - infoLayout->addSpacing(10); - infoLayout->addWidget(m_ssidBtn); - infoLayout->addWidget(m_stateButton); - infoLayout->addSpacing(10); - infoLayout->setSpacing(0); - - QVBoxLayout *centralLayout = new QVBoxLayout; - centralLayout->addLayout(infoLayout); - centralLayout->setSpacing(0); - centralLayout->setMargin(0); - - setLayout(centralLayout); - - connect(m_ssidBtn, &SsidButton::clicked, this, &AccessPointWidget::clicked); - connect(m_ssidBtn, &SsidButton::clicked, this, &AccessPointWidget::ssidClicked); - connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] { - setStrengthIcon(m_ap.strength()); - }); - - connect(qApp, &DApplication::iconThemeChanged, this, [ = ] { - setStrengthIcon(m_ap.strength()); - }); - - connect(m_stateButton, &StateButton::click, this, &AccessPointWidget::disconnectBtnClicked); - - setStrengthIcon(m_ap.strength()); -} - -void AccessPointWidget::updateAP(const AccessPoint &ap) -{ - m_ap = ap; - - QString strSsid = ap.ssid(); - m_ssidBtn->setText(strSsid); - - QFontMetrics fontMetrics(m_ssidBtn->font()); - if(fontMetrics.width(strSsid) > m_ssidBtn->width()) - { - strSsid = QFontMetrics(m_ssidBtn->font()).elidedText(strSsid, Qt::ElideRight, m_ssidBtn->width()); - } - m_ssidBtn->setText(strSsid); - - setStrengthIcon(ap.strength()); - - if (!ap.secured()) { - m_securityLabel->clear(); - } else if(!m_securityLabel->pixmap()) { - m_securityLabel->setPixmap(m_securityPixmap); - } - - // reset state - setActiveState(NetworkDevice::Unknown); -} - -bool AccessPointWidget::active() const -{ - return m_activeState == NetworkDevice::Activated; -} - -void AccessPointWidget::setActiveState(const NetworkDevice::DeviceStatus state) -{ - if (m_activeState == state) - return; - - m_activeState = state; - - const bool isActive = active(); - - m_stateButton->setVisible(isActive); -} - -/** - * @brief AccessPointWidget::paintEvent 根据主题颜色绘制wifi列表item背景色 - * @param event - */ -void AccessPointWidget::paintEvent(QPaintEvent *event) -{ - Q_UNUSED(event); - QPainter painter(this); - painter.setPen(Qt::NoPen); - if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) { - if(m_isEnter) { - painter.setBrush(QColor(0, 0, 0, 0.12*255)); - } else { - painter.setBrush(Qt::transparent); - } - } else { - if(m_isEnter) { - painter.setBrush(QColor(255, 255, 255, 0.12*255)); - } else { - painter.setBrush(Qt::transparent); - } - } - - painter.drawRect(rect()); -} - -void AccessPointWidget::enterEvent(QEvent *e) -{ - m_isEnter = true; - update(); - QWidget::enterEvent(e); -} - -void AccessPointWidget::leaveEvent(QEvent *e) -{ - m_isEnter = false; - update(); - QWidget::leaveEvent(e); -} - -void AccessPointWidget::setStrengthIcon(const int strength) -{ - QPixmap iconPix; - const QSize s = QSize(16, 16); - - QString type; - if (strength > 65) - type = "80"; - else if (strength > 55) - type = "60"; - else if (strength > 30) - type = "40"; - else if (strength > 5) - type = "20"; - else - type = "0"; - - QString iconString = QString("wireless-%1-symbolic").arg(type); - bool isLight = (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType); - - if (isLight) { - iconString.append("-dark"); - } - - const auto ratio = devicePixelRatioF(); - iconPix = ImageUtil::loadSvg(iconString, ":/wireless/resources/wireless/", s.width(), ratio); - - m_strengthLabel->setPixmap(iconPix); - - m_securityPixmap = QIcon::fromTheme(isLight ? ":/wireless/resources/wireless/security_dark.svg" : ":/wireless/resources/wireless/security.svg").pixmap(s * devicePixelRatioF()); - m_securityPixmap.setDevicePixelRatio(devicePixelRatioF()); - m_securityLabel->setPixmap(m_securityPixmap); -} - -void AccessPointWidget::ssidClicked() -{ - if (m_activeState == NetworkDevice::Activated) - return; - - setActiveState(NetworkDevice::Prepare); - emit requestActiveAP(m_ap.path(), m_ap.ssid()); -} - -void AccessPointWidget::disconnectBtnClicked() -{ - setActiveState(NetworkDevice::Unknown); - emit requestDeactiveAP(m_ap); -} diff --git a/plugins/network/item/applet/accesspointwidget.h b/plugins/network/item/applet/accesspointwidget.h deleted file mode 100644 index 9c4b584bf..000000000 --- a/plugins/network/item/applet/accesspointwidget.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef ACCESSPOINTWIDGET_H -#define ACCESSPOINTWIDGET_H - -#include "accesspoint.h" - -#include - -#include -#include -#include - -class StateButton; -class SsidButton : public QLabel -{ - Q_OBJECT -public: - explicit SsidButton(QWidget *parent = nullptr) - : QLabel(parent) {} - virtual ~SsidButton() override {} - -signals: - void clicked(); - -protected: - void mouseReleaseEvent(QMouseEvent *event) override - { - QLabel::mouseReleaseEvent(event); - - Q_EMIT clicked(); - } -}; - -class AccessPointWidget : public QFrame -{ - Q_OBJECT - Q_PROPERTY(bool active READ active DESIGNABLE true) - -public: - explicit AccessPointWidget(QWidget *parent = nullptr); - - const AccessPoint ap() const { return m_ap; } - void updateAP(const AccessPoint &ap); - - bool active() const; - void setActiveState(const dde::network::NetworkDevice::DeviceStatus state); - -signals: - void requestActiveAP(const QString &apPath, const QString &ssid) const; - void requestDeactiveAP(const AccessPoint &ap) const; - void clicked() const; - -private: - void enterEvent(QEvent *e) override; - void leaveEvent(QEvent *e) override; - void setStrengthIcon(const int strength); - -protected: - void paintEvent(QPaintEvent *event) override; - -private slots: - void ssidClicked(); - void disconnectBtnClicked(); - -private: - dde::network::NetworkDevice::DeviceStatus m_activeState; - - AccessPoint m_ap; - SsidButton *m_ssidBtn; - QLabel *m_securityLabel; - QLabel *m_strengthLabel; - StateButton *m_stateButton; - - QPixmap m_securityPixmap; - QSize m_securityIconSize; - - bool m_isEnter; -}; - -#endif // ACCESSPOINTWIDGET_H diff --git a/plugins/network/item/applet/devicecontrolwidget.cpp b/plugins/network/item/applet/devicecontrolwidget.cpp deleted file mode 100644 index 702425c87..000000000 --- a/plugins/network/item/applet/devicecontrolwidget.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "devicecontrolwidget.h" -#include "horizontalseperator.h" -#include "../widgets/tipswidget.h" - -#include -#include - -#include -#include -#include -#include -#include - -DWIDGET_USE_NAMESPACE -DGUI_USE_NAMESPACE - -extern const int ItemHeight = 30; - -DeviceControlWidget::DeviceControlWidget(QWidget *parent) - : QWidget(parent) - , m_deviceName(new QLabel(this)) - , m_switchBtn(new DSwitchButton(this)) - , m_loadingIndicator(new DLoadingIndicator(this)) -{ - m_deviceName->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - m_deviceName->setForegroundRole(QPalette::BrightText); - - const QPixmap pixmap = DHiDPIHelper::loadNxPixmap(":/wireless/resources/wireless/refresh.svg"); - - m_loadingIndicator->setLoading(false); - m_loadingIndicator->setSmooth(true); - m_loadingIndicator->setAniDuration(1000); - m_loadingIndicator->setAniEasingCurve(QEasingCurve::InOutCirc); - m_loadingIndicator->installEventFilter(this); - m_loadingIndicator->setFixedSize(pixmap.size() / devicePixelRatioF()); - m_loadingIndicator->viewport()->setAutoFillBackground(false); - m_loadingIndicator->setFrameShape(QFrame::NoFrame); - refreshIcon(); - - QHBoxLayout *infoLayout = new QHBoxLayout; - infoLayout->setMargin(0); - infoLayout->setSpacing(0); - infoLayout->setContentsMargins(20, 0, 0, 0); - infoLayout->addWidget(m_deviceName); - infoLayout->addStretch(); - infoLayout->addWidget(m_loadingIndicator); - infoLayout->addSpacing(4); - infoLayout->addWidget(m_switchBtn); - // DSwitchButton 按照设计要求: 在保持现有控件的尺寸下,这里需要预留绘制focusRect的区域,borderWidth为2,间隙宽度为2 - // 所以此处按设计的要求 10-4 = 6 - infoLayout->addSpacing(6); - - QVBoxLayout *centralLayout = new QVBoxLayout; - centralLayout->addLayout(infoLayout); - centralLayout->setMargin(0); - centralLayout->setSpacing(0); - centralLayout->setContentsMargins(0, 0, 0, 0); - - setLayout(centralLayout); - setFixedHeight(ItemHeight); - - connect(m_switchBtn, &DSwitchButton::clicked, this, &DeviceControlWidget::enableButtonToggled); - connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &DeviceControlWidget::refreshIcon); -} - -void DeviceControlWidget::setDeviceName(const QString &name) -{ - m_deviceName->setText(name); -} - -void DeviceControlWidget::setDeviceEnabled(const bool enable) -{ - m_switchBtn->blockSignals(true); - m_switchBtn->setChecked(enable); - m_loadingIndicator->setVisible(enable); - m_switchBtn->blockSignals(false); -} - -bool DeviceControlWidget::eventFilter(QObject *watched, QEvent *event) -{ - if (watched == m_loadingIndicator) { - if (event->type() == QEvent::MouseButtonPress) { - if (!m_loadingIndicator->loading()) { - refreshNetwork(); - } - } - } - - return QWidget::eventFilter(watched, event); -} - -void DeviceControlWidget::refreshNetwork() -{ - emit requestRefresh(); - - m_loadingIndicator->setLoading(true); - - QTimer::singleShot(1000, this, [ = ] { - m_loadingIndicator->setLoading(false); - }); -} - -void DeviceControlWidget::refreshIcon() -{ - QPixmap pixmap; - if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) - pixmap = DHiDPIHelper::loadNxPixmap(":/wireless/resources/wireless/refresh_dark.svg"); - else - pixmap = DHiDPIHelper::loadNxPixmap(":/wireless/resources/wireless/refresh.svg"); - - m_loadingIndicator->setImageSource(pixmap); -} diff --git a/plugins/network/item/applet/devicecontrolwidget.h b/plugins/network/item/applet/devicecontrolwidget.h deleted file mode 100644 index 8c09a0e4f..000000000 --- a/plugins/network/item/applet/devicecontrolwidget.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#ifndef DEVICECONTROLWIDGET_H -#define DEVICECONTROLWIDGET_H - -#include "horizontalseperator.h" - -#include - -#include -#include - -DWIDGET_USE_NAMESPACE -class QLabel; -class DeviceControlWidget : public QWidget -{ - Q_OBJECT - -public: - explicit DeviceControlWidget(QWidget *parent = 0); - - void setDeviceName(const QString &name); - void setDeviceEnabled(const bool enable); - -signals: - void enableButtonToggled(const bool enable) const; - void requestRefresh() const; - -protected: - bool eventFilter(QObject *watched, QEvent *event) override; - void refreshIcon(); - -private slots: - void refreshNetwork(); - -private: - QLabel *m_deviceName; - Dtk::Widget::DSwitchButton *m_switchBtn; - DLoadingIndicator *m_loadingIndicator; -}; - -#endif // DEVICECONTROLWIDGET_H diff --git a/plugins/network/item/applet/wirelesslist.cpp b/plugins/network/item/applet/wirelesslist.cpp deleted file mode 100644 index 919ec5cdb..000000000 --- a/plugins/network/item/applet/wirelesslist.cpp +++ /dev/null @@ -1,468 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "wirelesslist.h" -#include "accesspointwidget.h" -#include "constants.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -DWIDGET_USE_NAMESPACE - -using namespace dde::network; - -extern const int ItemWidth = 250; -extern const int ItemMargin = 10; -extern const int ItemHeight; - -WirelessList::WirelessList(WirelessDevice *deviceIter, QWidget *parent) - : QScrollArea(parent) - , m_device(deviceIter) - , m_activeAP() - , m_updateAPTimer(new QTimer(this)) - , m_centralLayout(new QVBoxLayout) - , m_centralWidget(new QWidget(this)) - , m_controlPanel(new DeviceControlWidget(this)) -{ - setFixedHeight(ItemHeight); - - m_updateAPTimer->setSingleShot(true); - m_updateAPTimer->setInterval(100); - - m_centralWidget->setFixedWidth(ItemWidth); - m_centralWidget->setLayout(m_centralLayout); - - m_centralLayout->addWidget(m_controlPanel); - m_centralLayout->setSpacing(0); - m_centralLayout->setMargin(0); - - setWidget(m_centralWidget); - setFrameShape(QFrame::NoFrame); - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - m_centralWidget->setAutoFillBackground(false); - viewport()->setAutoFillBackground(false); - - m_loadingStat = new DSpinner(this); - m_loadingStat->setFixedSize(PLUGIN_ICON_MAX_SIZE, PLUGIN_ICON_MAX_SIZE); - m_loadingStat->setVisible(false); - isHotposActive = false; - - connect(m_device, &WirelessDevice::apAdded, this, &WirelessList::APAdded); - connect(m_device, &WirelessDevice::apRemoved, this, &WirelessList::APRemoved); - connect(m_device, &WirelessDevice::apInfoChanged, this, &WirelessList::APPropertiesChanged); - connect(m_device, &WirelessDevice::enableChanged, this, &WirelessList::onDeviceEnableChanged); - connect(m_device, &WirelessDevice::activateAccessPointFailed, this, &WirelessList::onActivateApFailed); - connect(m_device, &WirelessDevice::hotspotEnabledChanged, this, &WirelessList::onHotspotEnabledChanged); - - connect(m_controlPanel, &DeviceControlWidget::enableButtonToggled, this, &WirelessList::onEnableButtonToggle); - connect(m_controlPanel, &DeviceControlWidget::requestRefresh, this, &WirelessList::requestWirelessScan); - - connect(m_updateAPTimer, &QTimer::timeout, this, &WirelessList::updateAPList); - - connect(m_device, &WirelessDevice::activeWirelessConnectionInfoChanged, this, &WirelessList::onActiveConnectionInfoChanged); - connect(m_device, static_cast(&WirelessDevice::statusChanged), m_updateAPTimer, static_cast(&QTimer::start)); - connect(m_device, &WirelessDevice::activeConnectionsChanged, this, &WirelessList::updateIndicatorPos, Qt::QueuedConnection); - - connect(this->verticalScrollBar(), &QScrollBar::valueChanged, this, [ = ] { - auto apw = accessPointWidgetByAp(m_activatingAP); - if (!apw) - return; - - const int h = -(apw->height() - m_loadingStat->height()) / 2; - m_loadingStat->move(apw->mapTo(this, apw->rect().topRight()) - QPoint(23, h)); - }); - - QMetaObject::invokeMethod(this, "loadAPList", Qt::QueuedConnection); -} - -WirelessList::~WirelessList() -{ -} - -QWidget *WirelessList::controlPanel() -{ - return m_controlPanel; -} - -int WirelessList::APcount() -{ - return m_apList.size(); -} - -void WirelessList::APAdded(const QJsonObject &apInfo) -{ - AccessPoint ap(apInfo); - const auto mIndex = m_apList.indexOf(ap); - if (mIndex != -1) { - if (ap.strength() < 5 && ap.path() == m_apList.at(mIndex).path()) - m_apList.removeAt(mIndex); - else if ((ap.strength() < m_apList.at(mIndex).strength() && ap.path() == m_apList.at(mIndex).path()) - || (ap.strength() > m_apList.at(mIndex).strength())) - m_apList.replace(mIndex, ap); - else - return; - } else { - if (ap.strength() < 5) - return; - m_apList.append(ap); - } - - m_updateAPTimer->start(); -} - -void WirelessList::APRemoved(const QJsonObject &apInfo) -{ - AccessPoint ap(apInfo); - const auto mIndex = m_apList.indexOf(ap); - if (mIndex != -1) { - if (ap.path() == m_apList.at(mIndex).path()) { - m_apList.removeAt(mIndex); - m_updateAPTimer->start(); - } - } -} - -void WirelessList::setDeviceInfo(const int index) -{ - if (m_device.isNull()) { - return; - } - - // set device enable state - m_controlPanel->setDeviceEnabled(m_device->enabled()); - - // set device name - if (index == -1) - m_controlPanel->setDeviceName(tr("Wireless Network")); - else - m_controlPanel->setDeviceName(tr("Wireless Network %1").arg(index)); -} - -void WirelessList::loadAPList() -{ - if (m_device.isNull()) { - return; - } - - for (auto item : m_device->apList()) { - AccessPoint ap(item.toObject()); - const auto mIndex = m_apList.indexOf(ap); - if (mIndex != -1) { - // indexOf() will use AccessPoint reimplemented function "operator==" as comparison condition - // this means that the ssid of the AP is a comparison condition - m_apList.replace(mIndex, ap); - } else { - m_apList.append(ap); - } - } - - m_updateAPTimer->start(); -} - -void WirelessList::APPropertiesChanged(const QJsonObject &apInfo) -{ - AccessPoint ap(apInfo); - const auto mIndex = m_apList.indexOf(ap); - if(ap.strength() < 5) - { - if(mIndex != -1){ - if (ap.path() == m_apList.at(mIndex).path()) { - m_apList.removeAt(mIndex); - m_updateAPTimer->start(); - } - } - }else { - if (mIndex != -1) { - if ((ap.strength() < m_apList.at(mIndex).strength() && ap.path() == m_apList.at(mIndex).path()) - || (ap.strength() > m_apList.at(mIndex).strength())) - m_apList.replace(mIndex, ap); - else - return; - }else { - m_apList.append(ap); - } - m_updateAPTimer->start(); - } -} - -void WirelessList::updateAPList() -{ - Q_ASSERT(sender() == m_updateAPTimer); - - if (m_device.isNull()) { - return; - } - - int avaliableAPCount = 0; - - if (m_device->enabled()) { - // NOTE: Keep the amount consistent - if (m_apList.size() > m_apwList.size()) { - int i = m_apList.size() - m_apwList.size(); - for (int index = 0; index != i; index++) { - AccessPointWidget *apw = new AccessPointWidget(this); - apw->setFixedHeight(ItemHeight); - m_apwList << apw; - m_centralLayout->addWidget(apw); - - connect(apw, &AccessPointWidget::requestActiveAP, this, &WirelessList::activateAP); - connect(apw, &AccessPointWidget::requestDeactiveAP, this, &WirelessList::deactiveAP); - connect(apw, &AccessPointWidget::requestActiveAP, this, [ = ] { - m_clickedAPW = apw; - }, Qt::UniqueConnection); - } - } else if (m_apList.size() < m_apwList.size()) { - if (!m_apwList.isEmpty()) { - int i = m_apwList.size() - m_apList.size(); - for (int index = 0; index != i; index++) { - AccessPointWidget *apw = m_apwList.last(); - m_apwList.removeLast(); - m_centralLayout->removeWidget(apw); - apw->deleteLater(); - } - } - } - - std::sort(m_apList.begin(), m_apList.end(), [&](const AccessPoint & ap1, const AccessPoint & ap2) { - if (ap1 == m_activeAP) - return true; - - if (ap2 == m_activeAP) - return false; - - return ap1.strength() > ap2.strength(); - }); - - // update the content of AccessPointWidget by the order of ApList - for (int i = 0; i != m_apList.size(); i++) { - m_apwList[i]->updateAP(m_apList[i]); - ++avaliableAPCount; - } - - // update active AP state - NetworkDevice::DeviceStatus deviceStatus = m_device->status(); - if (!m_apwList.isEmpty()) { - AccessPointWidget *apw = m_apwList.first(); - - apw->setActiveState(deviceStatus); - } - - if (m_loadingStat->isVisible() && !m_activatingAP.isEmpty() && m_apList.contains(m_activatingAP)) { - AccessPointWidget *apw = accessPointWidgetByAp(m_activatingAP); - if (apw) { - const int h = -(apw->height() - m_loadingStat->height()) / 2; - m_loadingStat->move(apw->mapTo(this, apw->rect().topRight()) - QPoint(23, h)); - } - } - - if (deviceStatus <= NetworkDevice::Disconnected || deviceStatus >= NetworkDevice::Activated) { - m_loadingStat->stop(); - m_loadingStat->hide(); - } - } - - const int contentHeight = avaliableAPCount * ItemHeight; - m_centralWidget->setFixedHeight(contentHeight); - setFixedHeight(contentHeight); - emit requestUpdatePopup(); - - QTimer::singleShot(100, this, &WirelessList::updateIndicatorPos); -} - -void WirelessList::onEnableButtonToggle(const bool enable) -{ - if (m_device.isNull()) { - return; - } - - Q_EMIT requestSetDeviceEnable(m_device->path(), enable); - m_updateAPTimer->start(); -} - -void WirelessList::onDeviceEnableChanged(const bool enable) -{ - m_controlPanel->setDeviceEnabled(enable); - m_updateAPTimer->start(); -} - -void WirelessList::activateAP(const QString &apPath, const QString &ssid) -{ - if (m_device.isNull()) { - return; - } - - QString uuid; - - QList connections = m_device->connections(); - for (auto item : connections) { - if (item.value("Ssid").toString() != ssid) - continue; - - uuid = item.value("Uuid").toString(); - if (!uuid.isEmpty()) - break; - } - - Q_EMIT requestActiveAP(m_device->path(), apPath, uuid); -} - -void WirelessList::deactiveAP() -{ - if (m_device.isNull()) { - return; - } - - Q_EMIT requestDeactiveAP(m_device->path()); -} - -void WirelessList::updateIndicatorPos() -{ - QString activeSsid; - for (auto activeConnObj : m_device->activeConnections()) { - if (activeConnObj.value("Vpn").toBool(false)) { - continue; - } - // the State of Active Connection - // 0:Unknow, 1:Activating, 2:Activated, 3:Deactivating, 4:Deactivated - if (activeConnObj.value("State").toInt(0) != 1) { - break; - } - activeSsid = activeConnObj.value("Id").toString(); - break; - } - - // if current is not activating wireless this will make m_activatingAP empty - m_activatingAP = accessPointBySsid(activeSsid); - AccessPointWidget *apw = accessPointWidgetByAp(m_activatingAP); - - if (activeSsid.isEmpty() || m_activatingAP.isEmpty() || !apw) { - m_loadingStat->hide(); - return; - } - - const int h = -(apw->height() - m_loadingStat->height()) / 2; - m_loadingStat->move(apw->mapTo(this, apw->rect().topRight()) - QPoint(23, h)); - m_loadingStat->show(); - m_loadingStat->start(); -} - -void WirelessList::onActiveConnectionInfoChanged() -{ - if (m_device.isNull()) { - return; - } - - // 在这个方法中需要通过m_device->activeApSsid()的信息设置m_activeAP的值 - // m_activeAP的值应该从m_apList中拿到,但在程序第一次启动后,当后端扫描无线网的数据还没有发过来, - // 这时m_device中的ap list为空,导致本类初始化时调用loadAPList()后m_apList也是空的, - // 那么也就无法给m_activeAP正确的值,所以在这里使用timer等待一下后端的数据,再执行遍历m_apList给m_activeAP赋值的操作 - if (m_device->enabled() && m_device->status() == NetworkDevice::Activated - && m_apList.size() == 0) { - QTimer::singleShot(1000, [ = ] {onActiveConnectionInfoChanged();}); - return; - } - - for (int i = 0; i < m_apList.size(); ++i) { - if (m_apList.at(i).ssid() == m_device->activeApSsid()) { - m_activeAP = m_apList.at(i); - m_updateAPTimer->start(); - break; - } - } -} - -void WirelessList::onActivateApFailed(const QString &apPath, const QString &uuid) -{ - if (m_device.isNull() && !m_clickedAPW) { - return; - } - - AccessPoint clickedAP = m_clickedAPW->ap(); - - if (clickedAP.isEmpty()) { - return; - } - - if (clickedAP.path() == apPath) { - qDebug() << "wireless connect failed and may require more configuration," - << "path:" << clickedAP.path() << "ssid" << clickedAP.ssid() - << "secret:" << clickedAP.secured() << "strength" << clickedAP.strength(); - m_updateAPTimer->start(); - - DDBusSender() - .service("com.deepin.dde.ControlCenter") - .interface("com.deepin.dde.ControlCenter") - .path("/com/deepin/dde/ControlCenter") - .method("ShowPage") - .arg(QString("network")) - .arg(QString("%1,%2").arg(m_device->path()).arg(uuid)) - .call(); - } -} - -void WirelessList::onHotspotEnabledChanged(const bool enabled) -{ - // Note: the obtained hotspot info is not complete - m_activeHotspotAP = enabled ? AccessPoint(m_device->activeHotspotInfo().value("Hotspot").toObject()) - : AccessPoint(); - isHotposActive = enabled; - m_updateAPTimer->start(); -} - -AccessPoint WirelessList::accessPointBySsid(const QString &ssid) -{ - if (ssid.isEmpty()) { - return AccessPoint(); - } - - for (auto ap : m_apList) { - if (ap.ssid() == ssid) { - return ap; - } - } - - return AccessPoint(); -} - -AccessPointWidget *WirelessList::accessPointWidgetByAp(const AccessPoint ap) -{ - if (ap.isEmpty()) { - return nullptr; - } - - for (auto apw : m_apwList) { - if (apw->ap().path() == ap.path()) { - return apw; - } - } - - return nullptr; -} diff --git a/plugins/network/item/applet/wirelesslist.h b/plugins/network/item/applet/wirelesslist.h deleted file mode 100644 index 6b3f653df..000000000 --- a/plugins/network/item/applet/wirelesslist.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef WIRELESSAPPLET_H -#define WIRELESSAPPLET_H - -#include "devicecontrolwidget.h" -#include "accesspoint.h" - -#include -#include -#include - -#include - -#include - -DWIDGET_USE_NAMESPACE - -class AccessPointWidget; -class QVBoxLayout; -class QTimer; -class WirelessList : public QScrollArea -{ - Q_OBJECT - -public: - explicit WirelessList(dde::network::WirelessDevice *deviceIter, QWidget *parent = 0); - ~WirelessList(); - - QWidget *controlPanel(); - int APcount(); - -public Q_SLOTS: - void setDeviceInfo(const int index); - void onEnableButtonToggle(const bool enable); - -signals: - void requestSetDeviceEnable(const QString &path, const bool enable) const; - void requestActiveAP(const QString &devPath, const QString &apPath, const QString &uuid) const; - void requestDeactiveAP(const QString &devPath) const; - void requestWirelessScan(); - void requestUpdatePopup(); - -private slots: - void loadAPList(); - void APAdded(const QJsonObject &apInfo); - void APRemoved(const QJsonObject &apInfo); - void APPropertiesChanged(const QJsonObject &apInfo); - void updateAPList(); - void onDeviceEnableChanged(const bool enable); - void activateAP(const QString &apPath, const QString &ssid); - void deactiveAP(); - void updateIndicatorPos(); - void onActiveConnectionInfoChanged(); - void onActivateApFailed(const QString &apPath, const QString &uuid); - void onHotspotEnabledChanged(const bool enabled); - -private: - AccessPoint accessPointBySsid(const QString &ssid); - AccessPointWidget *accessPointWidgetByAp(const AccessPoint ap); - -private: - QPointer m_device; - - AccessPoint m_activeAP; - AccessPoint m_activatingAP; - AccessPoint m_activeHotspotAP; - QList m_apList; - QList m_apwList; - - QTimer *m_updateAPTimer; - DSpinner *m_loadingStat; - - QVBoxLayout *m_centralLayout; - QWidget *m_centralWidget; - DeviceControlWidget *m_controlPanel; - - AccessPointWidget *m_clickedAPW; - -public: - bool isHotposActive; -}; - -#endif // WIRELESSAPPLET_H diff --git a/plugins/network/item/deviceitem.cpp b/plugins/network/item/deviceitem.cpp deleted file mode 100644 index 0f77f9da4..000000000 --- a/plugins/network/item/deviceitem.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "deviceitem.h" -#include "../frame/util/utils.h" - -#include - -#include -#include - -using namespace dde::network; - -DeviceItem::DeviceItem(dde::network::NetworkDevice *device, QWidget *parent) - : QWidget(parent), - m_device(device), - m_path(device->path()) -{ -} - -QSize DeviceItem::sizeHint() const -{ - return QSize(26, 26); -} - -const QString DeviceItem::itemCommand() const -{ - return QString(); -} - -const QString DeviceItem::itemContextMenu() -{ - if (m_device.isNull()) { - return QString(); - } - - QList items; - items.reserve(2); - - QMap enable; - enable["itemId"] = "enable"; - if (!m_device->enabled()) - enable["itemText"] = tr("Enable network"); - else - enable["itemText"] = tr("Disable network"); - enable["isActive"] = true; - items.push_back(enable); - - if (!QFile::exists(ICBC_CONF_FILE)) { - QMap settings; - settings["itemId"] = "settings"; - settings["itemText"] = tr("Network settings"); - settings["isActive"] = true; - items.push_back(settings); - } - - QMap menu; - menu["items"] = items; - menu["checkableMenu"] = false; - menu["singleCheck"] = false; - - return QJsonDocument::fromVariant(menu).toJson(); -} - -QWidget *DeviceItem::itemTips() -{ - return nullptr; -} - -void DeviceItem::invokeMenuItem(const QString &menuId) -{ - if (m_device.isNull()) { - return; - } - - if (menuId == "settings") - DDBusSender() - .service("com.deepin.dde.ControlCenter") - .interface("com.deepin.dde.ControlCenter") - .path("/com/deepin/dde/ControlCenter") - .method("ShowPage") - .arg(QString("network")) - .arg(m_path) - .call(); - else if (menuId == "enable") - Q_EMIT requestSetDeviceEnable(m_path, !m_device->enabled()); -} - -QWidget *DeviceItem::itemApplet() -{ - return nullptr; -} diff --git a/plugins/network/item/deviceitem.h b/plugins/network/item/deviceitem.h deleted file mode 100644 index 87962c059..000000000 --- a/plugins/network/item/deviceitem.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef DEVICEITEM_H -#define DEVICEITEM_H - -#include -#include - -#include - -class DeviceItem : public QWidget -{ - Q_OBJECT -public: - explicit DeviceItem(dde::network::NetworkDevice *device, QWidget *parent = nullptr); - - const QString &path() const { return m_path; } - - inline const QPointer device() { return m_device; } - - virtual const QString itemCommand() const; - virtual const QString itemContextMenu(); - virtual QWidget *itemApplet(); - virtual QWidget *itemTips(); - virtual void invokeMenuItem(const QString &menuId); - virtual void refreshConnectivity() {} - -signals: - void requestSetDeviceEnable(const QString &path, const bool enable) const; - -protected: - QSize sizeHint() const; - -protected: - QPointer m_device; - -private: - QString m_path; -}; - -#endif // DEVICEITEM_H diff --git a/plugins/network/item/wireditem.cpp b/plugins/network/item/wireditem.cpp deleted file mode 100644 index 285dc8371..000000000 --- a/plugins/network/item/wireditem.cpp +++ /dev/null @@ -1,311 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * listenerri - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "constants.h" -#include "wireditem.h" -#include "util/horizontalseperator.h" -#include "../widgets/tipswidget.h" -#include "util/utils.h" -#include "util/statebutton.h" -#include "util/imageutil.h" - -#include - -#include -#include - -#include - -DGUI_USE_NAMESPACE - -const int ItemHeight = 36; -extern const QString DarkType = "_dark.svg"; -extern const QString LightType = ".svg"; - -WiredItem::WiredItem(WiredDevice *device, const QString &deviceName, QWidget *parent) - : DeviceItem(device, parent) - , m_deviceName(deviceName) - , m_connectedName(new QLabel(this)) - , m_wiredIcon(new QLabel(this)) - , m_stateButton(new StateButton(this)) - , m_loadingStat(new DSpinner(this)) - , m_freshWiredIcon(new QTimer(this)) -{ - setFixedHeight(ItemHeight); - - m_stateButton->setFixedSize(16, 16); - m_stateButton->setType(StateButton::Check); - m_stateButton->setVisible(false); - m_loadingStat->setFixedSize(PLUGIN_ICON_MAX_SIZE, PLUGIN_ICON_MAX_SIZE); - m_loadingStat->setVisible(false); - - m_connectedName->setText(m_deviceName); - m_connectedName->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - m_connectedName->setForegroundRole(QPalette::BrightText); - - auto connectionLayout = new QVBoxLayout(this); - connectionLayout->setMargin(0); - connectionLayout->setSpacing(0); - - auto itemLayout = new QHBoxLayout; - itemLayout->setMargin(0); - itemLayout->setSpacing(0); - itemLayout->addSpacing(28); - itemLayout->addWidget(m_wiredIcon); - itemLayout->addSpacing(8); - itemLayout->addWidget(m_connectedName); - itemLayout->addWidget(m_stateButton); - itemLayout->addWidget(m_loadingStat); - itemLayout->addSpacing(11); - connectionLayout->addLayout(itemLayout); - setLayout(connectionLayout); - - connect(m_freshWiredIcon, &QTimer::timeout, this, &WiredItem::setWiredStateIcon); - connect(m_device, static_cast(&NetworkDevice::enableChanged), - this, &WiredItem::enableChanged); - connect(m_device, static_cast(&NetworkDevice::statusChanged), - this, &WiredItem::deviceStateChanged); - connect(m_device, static_cast(&NetworkDevice::statusChanged), - this, &WiredItem::setWiredStateIcon); - connect(m_device, static_cast(&NetworkDevice::enableChanged), - this, &WiredItem::setWiredStateIcon); - - connect(static_cast(m_device.data()), &WiredDevice::activeWiredConnectionInfoChanged, - this, &WiredItem::changedActiveWiredConnectionInfo); - - connect(m_stateButton, &StateButton::click, this, [&] { - auto enableState = m_device->enabled(); - emit requestSetDeviceEnable(path(), !enableState); - }); - - deviceStateChanged(m_device->status()); - setWiredStateIcon(); -} - -void WiredItem::setTitle(const QString &name) -{ - if (m_device->status() != NetworkDevice::Activated) - m_connectedName->setText(name); - m_deviceName = name; -} - -bool WiredItem::deviceEabled() -{ - return m_device->enabled(); -} - -void WiredItem::setDeviceEnabled(bool enabled) -{ - emit requestSetDeviceEnable(path(), enabled); -} - -WiredItem::WiredStatus WiredItem::getDeviceState() -{ - if (!m_device->enabled()) { - return Disabled; - } - if (m_device->status() == NetworkDevice::Activated - && NetworkModel::connectivity() != Connectivity::Full) { - return ConnectNoInternet; - } - if (m_device->obtainIpFailed()) { - return ObtainIpFailed; - } - - switch (m_device->status()) { - case NetworkDevice::Unknown: return Unknown; - case NetworkDevice::Unmanaged: - case NetworkDevice::Unavailable: return Nocable; - case NetworkDevice::Disconnected: return Disconnected; - case NetworkDevice::Prepare: - case NetworkDevice::Config: return Connecting; - case NetworkDevice::NeedAuth: return Authenticating; - case NetworkDevice::IpConfig: - case NetworkDevice::IpCheck: - case NetworkDevice::Secondaries: return ObtainingIP; - case NetworkDevice::Activated: return Connected; - case NetworkDevice::Deactivation: - case NetworkDevice::Failed: return Failed; - } - Q_UNREACHABLE(); -} - -QJsonObject WiredItem::getActiveWiredConnectionInfo() -{ - return static_cast(m_device.data())->activeWiredConnectionInfo(); -} - -void WiredItem::setThemeType(DGuiApplicationHelper::ColorType themeType) -{ - bool isLight = (themeType == DGuiApplicationHelper::LightType); - - auto pixpath = QString(":/wired/resources/wired/network-wired-symbolic"); - pixpath = isLight ? pixpath + "-dark.svg" : pixpath + LightType; - auto iconPix = Utils::renderSVG(pixpath, QSize(PLUGIN_ICON_MAX_SIZE, PLUGIN_ICON_MAX_SIZE), devicePixelRatioF()); - m_wiredIcon->setPixmap(iconPix); -} - -void WiredItem::setWiredStateIcon() -{ - QPixmap pixmap; - QString iconString; - QString stateString; - - auto ratio = devicePixelRatioF(); - - switch (m_deviceState) { - case NetworkDevice::Unknown: - case NetworkDevice::Unmanaged: - case NetworkDevice::Unavailable: { - stateString = "error"; - iconString = QString("network-%1-symbolic").arg(stateString); - } - break; - case NetworkDevice::Disconnected: { - stateString = "none"; - iconString = QString("network-%1-symbolic").arg(stateString); - } - break; - case NetworkDevice::Deactivation: - case NetworkDevice::Failed: { - stateString = "offline"; - iconString = QString("network-%1-symbolic").arg(stateString); - } - break; - case NetworkDevice::Prepare: - case NetworkDevice::Config: - case NetworkDevice::NeedAuth: - case NetworkDevice::IpConfig: - case NetworkDevice::IpCheck: - case NetworkDevice::Secondaries: { - m_freshWiredIcon->start(200); - const int index = QTime::currentTime().msec() / 200 % 10; - const int num = index + 1; - qDebug() << num; - iconString = QString("network-wired-symbolic-connecting%1").arg(num); - if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) - iconString.append(PLUGIN_MIN_ICON_NAME); - pixmap = ImageUtil::loadSvg(iconString, ":/", PLUGIN_ICON_MAX_SIZE, ratio); - m_wiredIcon->setPixmap(pixmap); - update(); - return; - } - case NetworkDevice::Activated: { - stateString = "online"; - iconString = QString("network-%1-symbolic").arg(stateString); - } - break; - } - - m_freshWiredIcon->stop(); - - if (m_deviceState == NetworkDevice::Activated && NetworkModel::connectivity() != Connectivity::Full) { - stateString = "warning"; - iconString = QString("network-%1-symbolic").arg(stateString); - } - - if (!m_device->enabled()) { - stateString = "disabled"; - iconString = QString("network-%1-symbolic").arg(stateString); - } - - if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) - iconString.append(PLUGIN_MIN_ICON_NAME); - - pixmap = ImageUtil::loadSvg(iconString, ":/", PLUGIN_ICON_MAX_SIZE, ratio); - m_wiredIcon->setPixmap(pixmap); - update(); -} - -void WiredItem::refreshConnectivity() -{ - setWiredStateIcon(); -} - -QSize WiredItem::sizeHint() const -{ - return QSize(DeviceItem::sizeHint().width(), ItemHeight); -} - -void WiredItem::deviceStateChanged(NetworkDevice::DeviceStatus state) -{ - m_deviceState = state; - switch (state) { - case NetworkDevice::Unknown: - case NetworkDevice::Unmanaged: - case NetworkDevice::Unavailable: - case NetworkDevice::Disconnected: - case NetworkDevice::Deactivation: - case NetworkDevice::Failed: { - m_loadingStat->stop(); - m_loadingStat->hide(); - m_loadingStat->setVisible(false); - if (!m_device->enabled()) - m_stateButton->setVisible(false); - } - break; - case NetworkDevice::Prepare: - case NetworkDevice::Config: - case NetworkDevice::NeedAuth: - case NetworkDevice::IpConfig: - case NetworkDevice::IpCheck: - case NetworkDevice::Secondaries: { - m_stateButton->setVisible(false); - m_loadingStat->setVisible(true); - m_loadingStat->start(); - } - break; - case NetworkDevice::Activated: { - m_loadingStat->stop(); - m_loadingStat->setVisible(false); - m_stateButton->setVisible(true); - } - break; - } - - emit wiredStateChanged(); -} - -void WiredItem::changedActiveWiredConnectionInfo(const QJsonObject &connInfo) -{ - if (connInfo.isEmpty()) { - m_stateButton->setVisible(false); - } else { - m_stateButton->setVisible(true); - m_loadingStat->stop(); - m_loadingStat->setVisible(false); - } - - auto strTitle = connInfo.value("ConnectionName").toString(); - m_connectedName->setText(strTitle); - QFontMetrics fontMetrics(m_connectedName->font()); - if (fontMetrics.width(strTitle) > m_connectedName->width()) { - strTitle = QFontMetrics(m_connectedName->font()).elidedText(strTitle, Qt::ElideRight, m_connectedName->width()); - } - - if (strTitle.isEmpty()) - m_connectedName->setText(m_deviceName); - else - m_connectedName->setText(strTitle); - - emit activeConnectionChanged(); -} diff --git a/plugins/network/item/wireditem.h b/plugins/network/item/wireditem.h deleted file mode 100644 index 6741cad39..000000000 --- a/plugins/network/item/wireditem.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef WIREDITEM_H -#define WIREDITEM_H - -#include "deviceitem.h" - -#include - -#include -#include - -using namespace dde::network; -DGUI_USE_NAMESPACE -DWIDGET_USE_NAMESPACE - -class QLabel; -class TipsWidget; -class HorizontalSeperator; -class StateButton; -class WiredItem : public DeviceItem -{ - Q_OBJECT - -public: - enum WiredStatus { - Unknown = 0, - Enabled = 0x00000001, - Disabled = 0x00000002, - Connected = 0x00000004, - Disconnected = 0x00000008, - Connecting = 0x00000010, - Authenticating = 0x00000020, - ObtainingIP = 0x00000040, - ObtainIpFailed = 0x00000080, - ConnectNoInternet = 0x00000100, - Nocable = 0x00000200, - Failed = 0x00000400, - }; - Q_ENUM(WiredStatus) - -public: - explicit WiredItem(dde::network::WiredDevice *device, const QString &deviceName, QWidget *parent = nullptr); - void setTitle(const QString &name); - bool deviceEabled(); - void setDeviceEnabled(bool enabled); - WiredStatus getDeviceState(); - QJsonObject getActiveWiredConnectionInfo(); - inline QString &deviceName() { return m_deviceName; } - void setThemeType(DGuiApplicationHelper::ColorType themeType); - void setWiredStateIcon(); - void refreshConnectivity() override; - -protected: - QSize sizeHint() const; - -signals: - void requestActiveConnection(const QString &devPath, const QString &uuid); - void wiredStateChanged(); - void enableChanged(); - void activeConnectionChanged(); - -private slots: - void deviceStateChanged(NetworkDevice::DeviceStatus state); - void changedActiveWiredConnectionInfo(const QJsonObject &connInfo); - -private: - QString m_deviceName; - QLabel *m_connectedName; - QLabel *m_wiredIcon; - StateButton *m_stateButton; - DSpinner *m_loadingStat; - - QTimer *m_freshWiredIcon; - NetworkDevice::DeviceStatus m_deviceState; -}; - -#endif // WIREDITEM_H diff --git a/plugins/network/item/wirelessitem.cpp b/plugins/network/item/wirelessitem.cpp deleted file mode 100644 index e5b931a33..000000000 --- a/plugins/network/item/wirelessitem.cpp +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "wirelessitem.h" -#include "networkplugin.h" -#include "../frame/util/imageutil.h" -#include "../widgets/tipswidget.h" - -#include - -#include -#include -#include -#include -#include - -using namespace dde::network; -DGUI_USE_NAMESPACE - -#define REFRESH_LIMIT 5 -#define REFRESH_TRY_TIME_SECOND 600000 - -WirelessItem::WirelessItem(WirelessDevice *device) - : DeviceItem(device) - , m_refreshLimit(0) - , m_refreshLimitTimer(new QTimer(this)) - , m_refreshTimer(new QTimer(this)) - , m_wirelessApplet(new QWidget(this)) - , m_APList(nullptr) -{ - m_refreshTimer->setSingleShot(true); - m_refreshTimer->setInterval(10000); - - m_refreshLimitTimer->setSingleShot(true); - m_refreshLimitTimer->setInterval(REFRESH_TRY_TIME_SECOND); - - connect(m_refreshTimer, &QTimer::timeout, [&] { - if (m_device.isNull() || m_refreshLimitTimer->isActive()) { - return; - } - - // NOTE(lxz): limit when 5 of failed, sleep 60s - // If the network data always has problems, it can - // alleviate repeated refresh. Failure should not - // be triggered under normal circumstances - if (m_refreshLimit == REFRESH_LIMIT) { - m_refreshLimitTimer->start(); - m_refreshLimit = 0; - return; - } - - WirelessDevice *dev = static_cast(m_device.data()); - // the status is Activated and activeApInfo is empty if the hotspot status of this wireless device is enabled - if (m_device->status() == NetworkDevice::Activated && dev->activeApInfo().isEmpty() && !dev->hotspotEnabled()) - { - Q_EMIT queryActiveConnInfo(); - ++m_refreshLimit; - return; - } - - m_refreshLimit = 0; - }); - connect(m_device, static_cast(&NetworkDevice::statusChanged), this, &WirelessItem::deviceStateChanged); - connect(static_cast(m_device.data()), &WirelessDevice::activeApInfoChanged, m_refreshTimer, static_cast(&QTimer::start)); - connect(static_cast(m_device.data()), &WirelessDevice::activeWirelessConnectionInfoChanged, m_refreshTimer, static_cast(&QTimer::start)); - connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, [ = ] { - update(); - }); - - connect(static_cast(m_device.data()), &WirelessDevice::activeApInfoChanged, this, [ = ](QJsonObject activeApInfo) { - m_activeApInfo = activeApInfo; - update(); - }); - connect(m_refreshLimitTimer, &QTimer::timeout, m_refreshTimer, static_cast(&QTimer::start)); - - init(); -} - -WirelessItem::~WirelessItem() -{ - if (m_APList) { - m_APList->deleteLater(); - - if (m_APList->controlPanel()) - m_APList->controlPanel()->deleteLater(); - } -} - -QWidget *WirelessItem::itemApplet() -{ - return m_wirelessApplet; -} - -int WirelessItem::APcount() -{ - return m_APList->APcount(); -} - -bool WirelessItem::deviceEanbled() -{ - return m_device->enabled(); -} - -void WirelessItem::setDeviceEnabled(bool enable) -{ - m_APList->onEnableButtonToggle(enable); -} - -WirelessItem::WirelessStatus WirelessItem::getDeviceState() -{ - if (!m_device->enabled()) { - return Disabled; - } - if (m_device->status() == NetworkDevice::Activated - && NetworkModel::connectivity() != Connectivity::Full) { - return ConnectNoInternet; - } - if (m_device->obtainIpFailed()) { - return ObtainIpFailed; - } - - switch (m_device->status()) { - case NetworkDevice::Unknown: return Unknown; - case NetworkDevice::Unmanaged: - case NetworkDevice::Unavailable: - case NetworkDevice::Disconnected: return Disconnected; - case NetworkDevice::Prepare: - case NetworkDevice::Config: return Connecting; - case NetworkDevice::NeedAuth: return Authenticating; - case NetworkDevice::IpConfig: - case NetworkDevice::IpCheck: - case NetworkDevice::Secondaries: return ObtainingIP; - case NetworkDevice::Activated: return Connected; - case NetworkDevice::Deactivation: - case NetworkDevice::Failed: return Failed; - } - Q_UNREACHABLE(); -} - -QJsonObject &WirelessItem::getConnectedApInfo() -{ - return m_activeApInfo; -} - -QJsonObject WirelessItem::getActiveWirelessConnectionInfo() -{ - return static_cast(m_device.data())->activeWirelessConnectionInfo(); -} - -void WirelessItem::setControlPanelVisible(bool visible) -{ - auto layout = m_wirelessApplet->layout(); - auto controlPanel = m_APList->controlPanel(); - if (layout && controlPanel) { - if (visible) { - layout->removeWidget(controlPanel); - layout->removeWidget(m_APList); - - layout->addWidget(controlPanel); - layout->addWidget(m_APList); - } else { - layout->removeWidget(controlPanel); - } - controlPanel->setVisible(visible); - adjustHeight(visible); - } -} - -void WirelessItem::setDeviceInfo(const int index) -{ - m_APList->setDeviceInfo(index); - m_index = index; -} - -bool WirelessItem::eventFilter(QObject *o, QEvent *e) -{ - if (o == m_APList && e->type() == QEvent::Resize) - QMetaObject::invokeMethod(this, "adjustHeight", Qt::QueuedConnection,Q_ARG(bool, m_APList->controlPanel()->isVisible())); - if (o == m_APList && e->type() == QEvent::Show) - Q_EMIT requestWirelessScan(); - - return false; -} - -void WirelessItem::init() -{ - m_APList = new WirelessList(static_cast(m_device.data())); - m_APList->installEventFilter(this); - m_APList->setObjectName("wireless-" + m_device->path()); - - QVBoxLayout *vLayout = new QVBoxLayout; - vLayout->addWidget(m_APList->controlPanel()); - vLayout->addWidget(m_APList); - vLayout->setMargin(0); - vLayout->setSpacing(0); - m_wirelessApplet->setLayout(vLayout); - - connect(m_APList, &WirelessList::requestSetDeviceEnable, this, &WirelessItem::requestSetDeviceEnable); - connect(m_APList, &WirelessList::requestActiveAP, this, &WirelessItem::requestActiveAP); - connect(m_APList, &WirelessList::requestDeactiveAP, this, &WirelessItem::requestDeactiveAP); - connect(m_APList, &WirelessList::requestWirelessScan, this, &WirelessItem::requestWirelessScan); - connect(m_APList, &WirelessList::requestUpdatePopup, this, &WirelessItem::deviceStateChanged); - - QTimer::singleShot(0, this, [ = ]() { - m_refreshTimer->start(); - }); -} - -void WirelessItem::adjustHeight(bool visibel) -{ - auto controlPanel = m_APList->controlPanel(); - if (!controlPanel) - return; - - auto height = visibel ? (m_APList->height() + controlPanel->height()) - : m_APList->height(); - m_wirelessApplet->setFixedHeight(height); -} diff --git a/plugins/network/item/wirelessitem.h b/plugins/network/item/wirelessitem.h deleted file mode 100644 index 60dab9503..000000000 --- a/plugins/network/item/wirelessitem.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef WIRELESSITEM_H -#define WIRELESSITEM_H - -#include "constants.h" -#include "deviceitem.h" -#include "applet/wirelesslist.h" - -#include -#include - -#include - -class TipsWidget; -class WirelessItem : public DeviceItem -{ - Q_OBJECT - -public: - enum WirelessStatus { - Unknown = 0, - Enabled = 0x00010000, - Disabled = 0x00020000, - Connected = 0x00040000, - Disconnected = 0x00080000, - Connecting = 0x00100000, - Authenticating = 0x00200000, - ObtainingIP = 0x00400000, - ObtainIpFailed = 0x00800000, - ConnectNoInternet = 0x01000000, - Failed = 0x02000000, - }; - Q_ENUM(WirelessStatus) - -public: - explicit WirelessItem(dde::network::WirelessDevice *device); - ~WirelessItem() override; - - QWidget *itemApplet() override; - int APcount(); - bool deviceEanbled(); - void setDeviceEnabled(bool enable); - WirelessStatus getDeviceState(); - QJsonObject &getConnectedApInfo(); - QJsonObject getActiveWirelessConnectionInfo(); - inline int deviceInfo() { return m_index; } - void setControlPanelVisible(bool visible); - -public Q_SLOTS: - // set the device name displayed - // in the top-left corner of the applet - void setDeviceInfo(const int index); - -Q_SIGNALS: - void requestActiveAP(const QString &devPath, const QString &apPath, const QString &uuid) const; - void requestDeactiveAP(const QString &devPath) const; - void feedSecret(const QString &connectionPath, const QString &settingName, const QString &password, const bool autoConnect); - void cancelSecret(const QString &connectionPath, const QString &settingName); - void queryActiveConnInfo(); - void requestWirelessScan(); - void createApConfig(const QString &devPath, const QString &apPath); - void queryConnectionSession(const QString &devPath, const QString &uuid); - void deviceStateChanged(); - -protected: - bool eventFilter(QObject *o, QEvent *e) override; - -private slots: - void init(); - void adjustHeight(bool visibel); - -private: - int m_refreshLimit; - int m_index; - QTimer *m_refreshLimitTimer; - QTimer *m_refreshTimer; - QWidget *m_wirelessApplet; - WirelessList *m_APList; - QJsonObject m_activeApInfo; -}; - -#endif // WIRELESSITEM_H diff --git a/plugins/network/network.json b/plugins/network/network.json deleted file mode 100644 index 95c126746..000000000 --- a/plugins/network/network.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "api": "1.1.1", - "depends-daemon-dbus-service": "com.deepin.daemon.Network" -} diff --git a/plugins/network/network.qrc b/plugins/network/network.qrc deleted file mode 100644 index 332b332f8..000000000 --- a/plugins/network/network.qrc +++ /dev/null @@ -1,150 +0,0 @@ - - - resources/wired/network-wired-symbolic-connecting1.svg - resources/wired/network-wired-symbolic-connecting2.svg - resources/wired/network-wired-symbolic-connecting3.svg - resources/wired/network-wired-symbolic-connecting4.svg - resources/wired/network-wired-symbolic-connecting5.svg - resources/wired/network-disabled-symbolic.svg - resources/wired/network-error-symbolic.svg - resources/wired/network-online-symbolic.svg - resources/wired/network-offline-symbolic.svg - resources/wired/network-wired-symbolic.svg - resources/wired/network-online-symbolic-dark.svg - resources/wired/network-wired-symbolic-connecting3-dark.svg - resources/wired/network-disabled-symbolic-dark.svg - resources/wired/network-none-symbolic.svg - resources/wired/network-wired-symbolic-connecting1-dark.svg - resources/wired/network-error-symbolic-dark.svg - resources/wired/network-warning-symbolic.svg - resources/wired/network-warning-symbolic-dark.svg - resources/wired/network-wired-symbolic-connecting5-dark.svg - resources/wired/network-wired-symbolic-dark.svg - resources/wired/network-wired-symbolic-connecting2-dark.svg - resources/wired/network-none-symbolic-dark.svg - resources/wired/network-wired-symbolic-connecting4-dark.svg - - - resources/wireless/wireless-background.svg - resources/wireless/wireless-disconnect.svg - resources/wireless/wireless-0-symbolic.svg - resources/wireless/wireless-20-symbolic.svg - resources/wireless/wireless-40-symbolic.svg - resources/wireless/wireless-60-symbolic.svg - resources/wireless/wireless-80-symbolic.svg - resources/wireless/wireless-0-symbolic-dark.svg - resources/wireless/wireless-20-symbolic-dark.svg - resources/wireless/wireless-40-symbolic-dark.svg - resources/wireless/wireless-60-symbolic-dark.svg - resources/wireless/wireless-80-symbolic-dark.svg - resources/wireless/wireless-disconnect-symbolic.svg - resources/wireless/security.svg - resources/wireless/security_dark.svg - resources/wireless/select.svg - resources/wireless/select_dark.svg - resources/wireless/disconnect.svg - resources/wireless/disconnect_dark.svg - resources/wireless/refresh.svg - resources/wireless/refresh_dark.svg - resources/wireless/wireless-disabled-symbolic-dark.svg - resources/wireless/wireless-disabled-symbolic.svg - - - resources/wireless/spinner14/Spinner01.png - resources/wireless/spinner14/Spinner02.png - resources/wireless/spinner14/Spinner03.png - resources/wireless/spinner14/Spinner04.png - resources/wireless/spinner14/Spinner05.png - resources/wireless/spinner14/Spinner06.png - resources/wireless/spinner14/Spinner07.png - resources/wireless/spinner14/Spinner08.png - resources/wireless/spinner14/Spinner09.png - resources/wireless/spinner14/Spinner10.png - resources/wireless/spinner14/Spinner11.png - resources/wireless/spinner14/Spinner12.png - resources/wireless/spinner14/Spinner13.png - resources/wireless/spinner14/Spinner14.png - resources/wireless/spinner14/Spinner15.png - resources/wireless/spinner14/Spinner16.png - resources/wireless/spinner14/Spinner17.png - resources/wireless/spinner14/Spinner18.png - resources/wireless/spinner14/Spinner19.png - resources/wireless/spinner14/Spinner20.png - resources/wireless/spinner14/Spinner21.png - resources/wireless/spinner14/Spinner22.png - resources/wireless/spinner14/Spinner23.png - resources/wireless/spinner14/Spinner24.png - resources/wireless/spinner14/Spinner25.png - resources/wireless/spinner14/Spinner26.png - resources/wireless/spinner14/Spinner27.png - resources/wireless/spinner14/Spinner28.png - resources/wireless/spinner14/Spinner29.png - resources/wireless/spinner14/Spinner30.png - resources/wireless/spinner14/Spinner31.png - resources/wireless/spinner14/Spinner32.png - resources/wireless/spinner14/Spinner33.png - resources/wireless/spinner14/Spinner34.png - resources/wireless/spinner14/Spinner35.png - resources/wireless/spinner14/Spinner36.png - resources/wireless/spinner14/Spinner37.png - resources/wireless/spinner14/Spinner38.png - resources/wireless/spinner14/Spinner39.png - resources/wireless/spinner14/Spinner40.png - resources/wireless/spinner14/Spinner41.png - resources/wireless/spinner14/Spinner42.png - resources/wireless/spinner14/Spinner43.png - resources/wireless/spinner14/Spinner44.png - resources/wireless/spinner14/Spinner45.png - resources/wireless/spinner14/Spinner46.png - resources/wireless/spinner14/Spinner47.png - resources/wireless/spinner14/Spinner48.png - resources/wireless/spinner14/Spinner49.png - resources/wireless/spinner14/Spinner50.png - resources/wireless/spinner14/Spinner51.png - resources/wireless/spinner14/Spinner52.png - resources/wireless/spinner14/Spinner53.png - resources/wireless/spinner14/Spinner54.png - resources/wireless/spinner14/Spinner55.png - resources/wireless/spinner14/Spinner56.png - resources/wireless/spinner14/Spinner57.png - resources/wireless/spinner14/Spinner58.png - resources/wireless/spinner14/Spinner59.png - resources/wireless/spinner14/Spinner60.png - resources/wireless/spinner14/Spinner61.png - resources/wireless/spinner14/Spinner62.png - resources/wireless/spinner14/Spinner63.png - resources/wireless/spinner14/Spinner64.png - resources/wireless/spinner14/Spinner65.png - resources/wireless/spinner14/Spinner66.png - resources/wireless/spinner14/Spinner67.png - resources/wireless/spinner14/Spinner68.png - resources/wireless/spinner14/Spinner69.png - resources/wireless/spinner14/Spinner70.png - resources/wireless/spinner14/Spinner71.png - resources/wireless/spinner14/Spinner72.png - resources/wireless/spinner14/Spinner73.png - resources/wireless/spinner14/Spinner74.png - resources/wireless/spinner14/Spinner75.png - resources/wireless/spinner14/Spinner76.png - resources/wireless/spinner14/Spinner77.png - resources/wireless/spinner14/Spinner78.png - resources/wireless/spinner14/Spinner79.png - resources/wireless/spinner14/Spinner80.png - resources/wireless/spinner14/Spinner81.png - resources/wireless/spinner14/Spinner82.png - resources/wireless/spinner14/Spinner83.png - resources/wireless/spinner14/Spinner84.png - resources/wireless/spinner14/Spinner85.png - resources/wireless/spinner14/Spinner86.png - resources/wireless/spinner14/Spinner87.png - resources/wireless/spinner14/Spinner88.png - resources/wireless/spinner14/Spinner89.png - resources/wireless/spinner14/Spinner90.png - - - resources/common/list_select.png - resources/common/list_select@2x.png - resources/common/notify_close_press.png - resources/common/notify_close_press@2x.png - - diff --git a/plugins/network/networkitem.cpp b/plugins/network/networkitem.cpp deleted file mode 100644 index 4a6754cbe..000000000 --- a/plugins/network/networkitem.cpp +++ /dev/null @@ -1,1569 +0,0 @@ -#include "networkitem.h" -#include "item/wireditem.h" -#include "item/wirelessitem.h" -#include "../../widgets/tipswidget.h" -#include "../frame/util/imageutil.h" -#include "utils.h" - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -extern const int ItemWidth; -extern const int ItemMargin; -extern const int ItemHeight; -const QString MenueEnable = "enable"; -const QString MenueWiredEnable = "wireEnable"; -const QString MenueWirelessEnable = "wirelessEnable"; -const QString MenueSettings = "settings"; - -#define TITLE_HEIGHT 46 -#define ITEM_HEIGHT 36 - -NetworkItem::NetworkItem(QWidget *parent) - : QWidget(parent) - , m_tipsWidget(new Dock::TipsWidget(this)) - , m_applet(new QScrollArea(this)) - , m_switchWire(true) - , m_timeOut(true) - , refreshIconTimer(new QTimer(this)) - , m_switchWireTimer(new QTimer(this)) - , m_wirelessScanTimer(new QTimer(this)) - , m_wirelessScanInterval(Utils::SettingValue("com.deepin.dde.dock", QByteArray(), "wireless-scan-interval", 10).toInt()) - , m_firstSeparator(new HorizontalSeperator(this)) - , m_secondSeparator(new HorizontalSeperator(this)) - , m_thirdSeparator(new HorizontalSeperator(this)) - , m_networkInter(new DbusNetwork("com.deepin.daemon.Network", "/com/deepin/daemon/Network", QDBusConnection::sessionBus(), this)) - , m_detectConflictTimer(new QTimer(this)) - , m_ipConflict(false) - , m_ipConflictChecking(false) -{ - refreshIconTimer->setInterval(100); - - m_tipsWidget->setVisible(false); - - m_wirelessControlPanel = new QWidget(this); - - QLabel *wirelessTitle = new QLabel(m_wirelessControlPanel); - wirelessTitle->setText(tr("Wireless Network")); - wirelessTitle->setFixedHeight(TITLE_HEIGHT); - wirelessTitle->setForegroundRole(QPalette::BrightText); - DFontSizeManager::instance()->bind(wirelessTitle, DFontSizeManager::T4, QFont::Medium); - - m_switchWirelessBtn = new DSwitchButton(m_wirelessControlPanel); - m_switchWirelessBtnState = false; - - const QPixmap pixmap = DHiDPIHelper::loadNxPixmap(":/wireless/resources/wireless/refresh.svg"); - - m_loadingIndicator = new DLoadingIndicator(this); - m_loadingIndicator->setLoading(false); - m_loadingIndicator->setSmooth(true); - m_loadingIndicator->setAniDuration(1000); - m_loadingIndicator->setAniEasingCurve(QEasingCurve::InOutCirc); - m_loadingIndicator->installEventFilter(this); - m_loadingIndicator->setFixedSize(pixmap.size() / devicePixelRatioF()); - m_loadingIndicator->viewport()->setAutoFillBackground(false); - m_loadingIndicator->setFrameShape(QFrame::NoFrame); - m_loadingIndicator->installEventFilter(this); - - this->installEventFilter(this); - - m_wirelessLayout = new QVBoxLayout; - m_wirelessLayout->setMargin(0); - m_wirelessLayout->setSpacing(0); - - // 无线网络控制器 - QHBoxLayout *switchWirelessLayout = new QHBoxLayout; - switchWirelessLayout->setMargin(0); - switchWirelessLayout->setSpacing(0); - // DSwitchButton 按照设计要求: 在保持现有控件的尺寸下,这里需要预留绘制focusRect的区域,borderWidth为2,间隙宽度为2 - // 所以此处按设计的要求 10-4 = 6 right margin - switchWirelessLayout->setContentsMargins(20, 0, 6, 0); - switchWirelessLayout->addWidget(wirelessTitle); - switchWirelessLayout->addStretch(); - switchWirelessLayout->addWidget(m_loadingIndicator); - switchWirelessLayout->addSpacing(4); - switchWirelessLayout->addWidget(m_switchWirelessBtn); - m_wirelessControlPanel->setLayout(switchWirelessLayout); - m_wirelessControlPanel->setFixedHeight(TITLE_HEIGHT); - - m_wiredControlPanel = new QWidget(this); - m_wiredControlPanel->setFixedHeight(TITLE_HEIGHT); - - QLabel *wiredTitle = new QLabel(m_wiredControlPanel); - wiredTitle->setText(tr("Wired Network")); - wiredTitle->setForegroundRole(QPalette::BrightText); - DFontSizeManager::instance()->bind(wiredTitle, DFontSizeManager::T4, QFont::Medium); - - m_switchWiredBtn = new DSwitchButton(m_wiredControlPanel); - m_switchWiredBtnState = false; - m_wiredLayout = new QVBoxLayout; - m_wiredLayout->setMargin(0); - m_wiredLayout->setSpacing(0); - - // 有线网络控制器 - QHBoxLayout *switchWiredLayout = new QHBoxLayout; - switchWiredLayout->setContentsMargins(20, 0, 6, 0); - switchWiredLayout->addWidget(wiredTitle); - switchWiredLayout->addStretch(); - switchWiredLayout->addWidget(m_switchWiredBtn); - m_wiredControlPanel->setLayout(switchWiredLayout); - m_wiredControlPanel->setFixedHeight(TITLE_HEIGHT); - - QWidget *centralWidget = new QWidget; - QVBoxLayout *centralLayout = new QVBoxLayout; - centralLayout->setContentsMargins(QMargins(ItemMargin, 0, ItemMargin, 0)); - centralLayout->setSpacing(0); - centralLayout->setMargin(0); - - centralLayout->addWidget(m_wirelessControlPanel); - centralLayout->addWidget(m_firstSeparator); - centralLayout->addLayout(m_wirelessLayout); - centralLayout->addWidget(m_secondSeparator); - - //TODO 先暂时这样写,后面要重构,届时布局要重新修改,直接使用dlistview - m_wirelessControlPanel->setVisible(m_wirelessItems.count() > 0); - m_firstSeparator->setVisible(m_wirelessItems.count() > 0); - m_secondSeparator->setVisible(m_wirelessItems.count() > 0 && m_wiredItems.count() > 0); - - centralLayout->addWidget(m_wiredControlPanel); - centralLayout->addWidget(m_thirdSeparator); - centralLayout->addLayout(m_wiredLayout); - - centralWidget->setLayout(centralLayout); - centralWidget->setFixedWidth(ItemWidth); - centralWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred); - - m_applet->setFixedWidth(ItemWidth); - m_applet->setWidget(centralWidget); - m_applet->setFrameShape(QFrame::NoFrame); - m_applet->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - m_applet->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - centralWidget->setAutoFillBackground(false); - m_applet->viewport()->setAutoFillBackground(false); - m_applet->setVisible(false); - - connect(m_switchWireTimer, &QTimer::timeout, [ = ] { - m_switchWire = !m_switchWire; - m_timeOut = true; - }); - connect(refreshIconTimer, &QTimer::timeout, this, &NetworkItem::refreshIcon); - connect(m_switchWiredBtn, &DSwitchButton::toggled, this, &NetworkItem::wiredsEnable); - connect(m_switchWirelessBtn, &DSwitchButton::toggled, this, &NetworkItem::wirelessEnable); - connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &NetworkItem::onThemeTypeChanged); - - connect(m_networkInter, &DbusNetwork::IPConflict, this, &NetworkItem::ipConflict); - connect(this, &NetworkItem::sendIpConflictDect, this, &NetworkItem::onSendIpConflictDect); - connect(m_detectConflictTimer, &QTimer::timeout, this, &NetworkItem::onDetectConflict); - const QGSettings *gsetting = Utils::SettingsPtr("com.deepin.dde.dock", QByteArray(), this); - if (gsetting) - connect(gsetting, &QGSettings::changed, [&](const QString &key) { - if (key == "wireless-scan-interval") { - m_wirelessScanInterval = gsetting->get("wireless-scan-interval").toInt() * 1000; - m_wirelessScanTimer->setInterval(m_wirelessScanInterval); - } - }); - connect(m_wirelessScanTimer, &QTimer::timeout, [&] { - for (auto wirelessItem : m_wirelessItems) { - if (wirelessItem) { - wirelessItem->requestWirelessScan(); - } - } - }); - - m_wirelessScanTimer->setInterval(m_wirelessScanInterval); -} - -QWidget *NetworkItem::itemApplet() -{ - m_applet->setVisible(true); - return m_applet; -} - -QWidget *NetworkItem::itemTips() -{ - return m_tipsWidget; -} - -void NetworkItem::updateDeviceItems(QMap &wiredItems, QMap &wirelessItems) -{ - // 已有设备不重复进行增删操作 - auto tempWiredItems = m_wiredItems; - auto tempWirelessItems = m_wirelessItems; - - for (auto wirelessItem : wirelessItems) { - if (wirelessItem) { - auto path = wirelessItem->path(); - if (m_wirelessItems.contains(path)) { - m_wirelessItems.value(path)->setDeviceInfo(wirelessItem->deviceInfo()); - tempWirelessItems.remove(path); - delete wirelessItem; - } else { - wirelessItem->setParent(this); - m_wirelessItems.insert(path, wirelessItem); - } - } - } - - for (auto wiredItem : wiredItems) { - if (wiredItem) { - auto path = wiredItem->path(); - if (m_wiredItems.contains(path)) { - m_wiredItems.value(path)->setTitle(wiredItem->deviceName()); - tempWiredItems.remove(path); - delete wiredItem; - } else { - wiredItem->setParent(this); - m_wiredItems.insert(path, wiredItem); - wiredItem->setVisible(true); - m_wiredLayout->addWidget(wiredItem); - } - } - } - - for (auto wirelessItem : tempWirelessItems) { - if (wirelessItem) { - auto path = wirelessItem->device()->path(); - m_wirelessItems.remove(path); - m_connectedWirelessDevice.remove(path); - wirelessItem->itemApplet()->setVisible(false); - m_wirelessLayout->removeWidget(wirelessItem->itemApplet()); - delete wirelessItem; - } - } - for (auto wiredItem : tempWiredItems) { - if (wiredItem) { - auto path = wiredItem->device()->path(); - m_wiredItems.remove(path); - m_connectedWiredDevice.remove(path); - wiredItem->setVisible(false); - m_wiredLayout->removeWidget(wiredItem); - delete wiredItem; - } - } - - m_wirelessControlPanel->setVisible(m_wirelessItems.count() > 0); - m_firstSeparator->setVisible(m_wirelessItems.count() > 0); - m_secondSeparator->setVisible(m_wirelessItems.count() > 0 && m_wiredItems.count() > 0); - - updateSelf(); -} - -const QString NetworkItem::contextMenu() const -{ - QList items; - - if (m_wirelessItems.size() && m_wiredItems.size()) { - items.reserve(3); - QMap wireEnable; - wireEnable["itemId"] = MenueWiredEnable; - if (m_switchWiredBtnState) - wireEnable["itemText"] = tr("Disable wired connection"); - else - wireEnable["itemText"] = tr("Enable wired connection"); - wireEnable["isActive"] = true; - items.push_back(wireEnable); - - QMap wirelessEnable; - wirelessEnable["itemId"] = MenueWirelessEnable; - if (m_switchWirelessBtnState) - wirelessEnable["itemText"] = tr("Disable wireless connection"); - else - wirelessEnable["itemText"] = tr("Enable wireless connection"); - wirelessEnable["isActive"] = true; - items.push_back(wirelessEnable); - } else { - items.reserve(2); - QMap enable; - enable["itemId"] = MenueEnable; - if (m_switchWiredBtnState || m_switchWirelessBtnState) - enable["itemText"] = tr("Disable network"); - else - enable["itemText"] = tr("Enable network"); - enable["isActive"] = true; - items.push_back(enable); - } - - QMap settings; - settings["itemId"] = MenueSettings; - settings["itemText"] = tr("Network settings"); - settings["isActive"] = true; - items.push_back(settings); - - QMap menu; - menu["items"] = items; - menu["checkableMenu"] = false; - menu["singleCheck"] = false; - - return QJsonDocument::fromVariant(menu).toJson(); -} - -void NetworkItem::invokeMenuItem(const QString &menuId, const bool checked) -{ - Q_UNUSED(checked); - - if (menuId == MenueEnable) { - wiredsEnable(!m_switchWiredBtnState); - wirelessEnable(!m_switchWirelessBtnState); - } else if (menuId == MenueWiredEnable) - wiredsEnable(!m_switchWiredBtnState); - else if (menuId == MenueWirelessEnable) - wirelessEnable(!m_switchWirelessBtnState); - else if (menuId == MenueSettings) - DDBusSender() - .service("com.deepin.dde.ControlCenter") - .interface("com.deepin.dde.ControlCenter") - .path("/com/deepin/dde/ControlCenter") - .method(QString("ShowModule")) - .arg(QString("network")) - .call(); -} - -void NetworkItem::refreshIcon() -{ - // 刷新按钮图标 - QPixmap pixmap; - if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) - pixmap = DHiDPIHelper::loadNxPixmap(":/wireless/resources/wireless/refresh_dark.svg"); - else - pixmap = DHiDPIHelper::loadNxPixmap(":/wireless/resources/wireless/refresh.svg"); - m_loadingIndicator->setImageSource(pixmap); - - QString stateString; - QString iconString; - const auto ratio = devicePixelRatioF(); - int iconSize = PLUGIN_ICON_MAX_SIZE; - int strength = 0; - - switch (m_pluginState) { - case Disabled: - case Adisabled: - stateString = "disabled"; - iconString = QString("wireless-%1-symbolic").arg(stateString); - break; - case Bdisabled: - stateString = "disabled"; - iconString = QString("network-%1-symbolic").arg(stateString); - break; - case Connected: - case Aconnected: - strength = getStrongestAp(); - stateString = getStrengthStateString(strength); - iconString = QString("wireless-%1-symbolic").arg(stateString); - - //如果无线连接有IP冲突,则显示已连接但是无法访问网络的图标 - if (m_ipConflict && getActiveWirelessList().size() > 0) { - foreach(auto ip, getActiveWirelessList()) { - if (m_conflictMap.keys().contains(ip)) { - stateString = "offline"; - iconString = QString("network-wireless-%1-symbolic").arg(stateString); - break; - } - } - } - - break; - case Bconnected: - stateString = "online"; - iconString = QString("network-%1-symbolic").arg(stateString); - - //如果有线连接有IP冲突,则显示有线连接断开的图标 - if (m_ipConflict && getActiveWiredList().size() > 0) { - foreach(auto ip, getActiveWiredList()) { - if (m_conflictMap.keys().contains(ip)) { - stateString = "offline"; - iconString = QString("network-%1-symbolic").arg(stateString); - break; - } - } - } - - break; - case Disconnected: - case Adisconnected: - stateString = "0"; - iconString = QString("wireless-%1-symbolic").arg(stateString); - break; - case Bdisconnected: - stateString = "none"; - iconString = QString("network-%1-symbolic").arg(stateString); - break; - case Connecting: { - refreshIconTimer->start(); - if (m_switchWire) { - strength = QTime::currentTime().msec() / 10 % 100; - stateString = getStrengthStateString(strength); - iconString = QString("wireless-%1-symbolic").arg(stateString); - if (height() <= PLUGIN_BACKGROUND_MIN_SIZE - && DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) - iconString.append(PLUGIN_MIN_ICON_NAME); - m_iconPixmap = ImageUtil::loadSvg(iconString, ":/", iconSize, ratio); - update(); - return; - } else { - refreshIconTimer->start(200); - const int index = QTime::currentTime().msec() / 200 % 10; - const int num = index + 1; - iconString = QString("network-wired-symbolic-connecting%1").arg(num); - if (height() <= PLUGIN_BACKGROUND_MIN_SIZE - && DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) - iconString.append(PLUGIN_MIN_ICON_NAME); - m_iconPixmap = ImageUtil::loadSvg(iconString, ":/", iconSize, ratio); - update(); - return; - } - } - case Aconnecting: { - refreshIconTimer->start(); - strength = QTime::currentTime().msec() / 10 % 100; - stateString = getStrengthStateString(strength); - iconString = QString("wireless-%1-symbolic").arg(stateString); - if (height() <= PLUGIN_BACKGROUND_MIN_SIZE - && DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) - iconString.append(PLUGIN_MIN_ICON_NAME); - m_iconPixmap = ImageUtil::loadSvg(iconString, ":/", iconSize, ratio); - update(); - return; - } - case Bconnecting: { - refreshIconTimer->start(200); - const int index = QTime::currentTime().msec() / 200 % 10; - const int num = index + 1; - iconString = QString("network-wired-symbolic-connecting%1").arg(num); - if (height() <= PLUGIN_BACKGROUND_MIN_SIZE - && DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) - iconString.append(PLUGIN_MIN_ICON_NAME); - m_iconPixmap = ImageUtil::loadSvg(iconString, ":/", iconSize, ratio); - update(); - return; - } - case ConnectNoInternet: - case AconnectNoInternet: //无线已连接但无法访问互联网 offline - stateString = "offline"; - iconString = QString("network-wireless-%1-symbolic").arg(stateString); - break; - case BconnectNoInternet: - stateString = "warning"; - iconString = QString("network-%1-symbolic").arg(stateString); - break; - case Bfailed://有线连接失败none变为offline - stateString = "offline"; - iconString = QString("network-%1-symbolic").arg(stateString); - break; - case Unknow: - case Nocable: - stateString = "error";//待图标 暂用错误图标 - iconString = QString("network-%1-symbolic").arg(stateString); - break; - case Afailed: - case Failed: //无线连接失败改为 disconnect - stateString = "disconnect"; - iconString = QString("wireless-%1").arg(stateString); - break; - } - - refreshIconTimer->stop(); - - if (height() <= PLUGIN_BACKGROUND_MIN_SIZE && DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) - iconString.append(PLUGIN_MIN_ICON_NAME); - - m_iconPixmap = ImageUtil::loadSvg(iconString, ":/", iconSize, ratio); - - update(); -} - -void NetworkItem::resizeEvent(QResizeEvent *e) -{ - QWidget::resizeEvent(e); - - const Dock::Position position = qApp->property(PROP_POSITION).value(); - // 保持横纵比 - if (position == Dock::Bottom || position == Dock::Top) { - setMaximumWidth(height()); - setMaximumHeight(QWIDGETSIZE_MAX); - } else { - setMaximumHeight(width()); - setMaximumWidth(QWIDGETSIZE_MAX); - } - - refreshIcon(); -} - -void NetworkItem::paintEvent(QPaintEvent *e) -{ - QWidget::paintEvent(e); - - QPainter painter(this); - const QRectF &rf = rect(); - const QRectF &rfp = QRectF(m_iconPixmap.rect()); - painter.drawPixmap(rf.center() - rfp.center() / m_iconPixmap.devicePixelRatioF(), - m_iconPixmap); -} - -bool NetworkItem::eventFilter(QObject *obj, QEvent *event) -{ - if (obj == m_loadingIndicator) { - if (event->type() == QEvent::MouseButtonPress) { - for (auto wirelessItem : m_wirelessItems) { - if (wirelessItem) { - wirelessItem->requestWirelessScan(); - } - } - wirelessScan(); - } - } - - // 用户会鼠标悬浮检查网络状态,此时发起检测,并更新网络状态 - // 当主机有n张激活的网卡(包含无线网卡,有线网卡)时,鼠标移动到网络插件位置,会发起主动ip冲突检测, - // 主动检测,如果冲突会触发IPConflict信号 - if (obj == this) { - if (event->type() == QEvent::Enter) { - onDetectConflict(); - } - } - - return false; -} - -QString NetworkItem::getStrengthStateString(int strength) -{ - if (5 >= strength) - return "0"; - else if (30 >= strength) - return "20"; - else if (55 >= strength) - return "40"; - else if (65 >= strength) - return "60"; - else - return "80"; - - Q_UNREACHABLE(); -} - -void NetworkItem::wiredsEnable(bool enable) -{ - for (auto wiredItem : m_wiredItems) { - if (wiredItem) { - wiredItem->setDeviceEnabled(enable); - wiredItem->setVisible(enable); - if (enable) - m_wiredLayout->addWidget(wiredItem); - else - m_wiredLayout->removeWidget(wiredItem); - } - } - - updateView(); -} - -void NetworkItem::wirelessEnable(bool enable) -{ - for (auto wirelessItem : m_wirelessItems) { - if (wirelessItem) { - wirelessItem->setDeviceEnabled(enable); - enable ? m_wirelessLayout->addWidget(wirelessItem->itemApplet()) - : m_wirelessLayout->removeWidget(wirelessItem->itemApplet()); - wirelessItem->itemApplet()->setVisible(enable); - } - } - //禁用无线网络时对应的分割线设置为不可见防止两分割线叠加增加分割线高度与下面分割线高度不一样 - m_secondSeparator->setVisible(enable && m_wiredItems.count() > 0); - updateView(); -} - -void NetworkItem::onThemeTypeChanged(DGuiApplicationHelper::ColorType themeType) -{ - for (auto wiredItem : m_wiredItems) { - wiredItem->setThemeType(themeType); - } - refreshIcon(); -} - -/**ip冲突以及冲突解除时,更新网络插件显示状态 - * @brief NetworkItem::ipConflict - * @param ip 本机的ip地址 - * @param mac 与本机冲突的mac地址,不为空,则冲突,为空则ip冲突解除 - */ -void NetworkItem::ipConflict(const QString &ip, const QString &mac) -{ - static int conflictCount = 0; - static int removeCount = 0; - QStringList ipList = currentIpList(); - - //判断缓存冲突列表中的IP是否在本机IP列表中 - foreach (auto tmpIP, m_conflictMap.keys()) { - if (!ipList.contains(tmpIP)) { - m_conflictMap.remove(tmpIP); - } - } - // 如果不是本机ip - if (!ipList.contains(ip)) - return; - - // mac为空时冲突解除或IP地址不冲突 - if (mac.isEmpty()) { - // 自检为空,则解除ip冲突状态或者冲突列表为空时,更新状态 - m_conflictMap.remove(ip); - - if (m_conflictMap.isEmpty()) { - conflictCount = 0; - } - - if (m_conflictMap.isEmpty() && m_ipConflict) { - // 确认1次解除 - if (removeCount++ < 1) { - onDetectConflict(); - return; - } - - // 当mac为空且map也为空时,立即更新状态会导致文字显示由'ip地址冲突'变为'已连接网络但无法访问互联网' - // 因为加了次数判断 - m_ipConflict = false; - m_ipConflictChecking = false; - m_detectConflictTimer->stop(); - updateSelf(); - m_conflictMap.clear(); - removeCount = 0; - } - return; - } - - // 缓存冲突ip和mac地址 - m_conflictMap.insert(ip, mac); - removeCount = 0; - - if (m_conflictMap.size() && !m_ipConflict) { - // 确认2次 - if (conflictCount++ < 2) { - onDetectConflict(); - return; - } - - conflictCount = 0; - m_ipConflict = true; - updateSelf(); - - // 有冲突才开启5秒中ip自检,目的是当其他主机主动解除了冲突,我方不知情 - m_detectConflictTimer->start(5000); - } -} - -/** - * @brief NetworkItem::onSendIpConflictDect 延时发送ip冲突检测 - * @param index 本地ip地址索引号 - */ -void NetworkItem::onSendIpConflictDect(int index) -{ - QTimer::singleShot(500, this, [ = ]() mutable { - if (index - 1 > currentIpList().size()) { - m_ipConflictChecking = false; - return; - } - - m_networkInter->RequestIPConflictCheck(currentIpList().at(index), ""); - - ++index; - if (currentIpList().size() > index) { - emit sendIpConflictDect(index); - } else { - m_ipConflictChecking = false; - } - }); -} - -void NetworkItem::onDetectConflict() -{ - // ip冲突时发起主动检测,如果解除则更新状态 - if (currentIpList().size() <= 0 || m_ipConflictChecking) { - return; - } - - m_ipConflictChecking = true; - onSendIpConflictDect(); -} - -void NetworkItem::getPluginState() -{ - int wiredState = 0; - int wirelessState = 0; - int state = 0; - int temp = 0; - // 所有设备状态叠加 - QMapIterator iwireless(m_wirelessItems); - while (iwireless.hasNext()) { - iwireless.next(); - auto wirelessItem = iwireless.value(); - if (wirelessItem) { - temp = wirelessItem->getDeviceState(); - state |= temp; - if ((temp & WirelessItem::Connected) >> 18) { - m_connectedWirelessDevice.insert(iwireless.key(), wirelessItem); - } else { - m_connectedWirelessDevice.remove(iwireless.key()); - } - } - } - // 按如下顺序得到当前无线设备状态 - temp = state; - if (!temp) - wirelessState = WirelessItem::Unknown; - temp = state; - if ((temp & WirelessItem::Disabled) >> 17) - wirelessState = WirelessItem::Disabled; - temp = state; - if ((temp & WirelessItem::Disconnected) >> 19) - wirelessState = WirelessItem::Disconnected; - temp = state; - if ((temp & WirelessItem::Connecting) >> 20) - wirelessState = WirelessItem::Connecting; - temp = state; - if ((temp & WirelessItem::ConnectNoInternet) >> 24) - wirelessState = WirelessItem::ConnectNoInternet; - temp = state; - if ((temp & WirelessItem::Connected) >> 18) { - wirelessState = WirelessItem::Connected; - } - //将无线获取地址状态中显示为连接中状态 - temp = state; - if ((temp & WirelessItem::ObtainingIP) >> 22) { - wirelessState = WirelessItem::ObtainingIP; - } - //无线正在认证 - temp = state; - if ((temp & WirelessItem::Authenticating) >> 17) { - wirelessState = WirelessItem::Authenticating; - } - - state = 0; - temp = 0; - QMapIterator iwired(m_wiredItems); - while (iwired.hasNext()) { - iwired.next(); - auto wiredItem = iwired.value(); - if (wiredItem) { - temp = wiredItem->getDeviceState(); - state |= temp; - if ((temp & WiredItem::Connected) >> 2) { - m_connectedWiredDevice.insert(iwired.key(), wiredItem); - } else { - m_connectedWiredDevice.remove(iwired.key()); - } - } - } - temp = state; - if (!temp) - wiredState = WiredItem::Unknown; - temp = state; - if ((temp & WiredItem::Nocable) >> 9) - wiredState = WiredItem::Nocable; - temp = state; - if ((temp & WiredItem::Disabled) >> 1) - wiredState = WiredItem::Disabled; - temp = state; - if ((temp & WiredItem::Disconnected) >> 3) - wiredState = WiredItem::Disconnected; - temp = state; - if ((temp & WiredItem::Connecting) >> 4) - wiredState = WiredItem::Connecting; - temp = state; - if ((temp & WiredItem::ConnectNoInternet) >> 8) - wiredState = WiredItem::ConnectNoInternet; - temp = state; - if ((temp & WiredItem::Connected) >> 2) { - wiredState = WiredItem::Connected; - } - //将有线获取地址状态中显示为连接中状态 - temp = state; - if ((temp & WiredItem::ObtainingIP) >> 6) { - wiredState = WiredItem::ObtainingIP; - } - //有线正在认证 - temp = state; - if ((temp & WiredItem::Authenticating) >> 5) { - wiredState = WiredItem::Authenticating; - } - - switch (wirelessState | wiredState) { - case 0: - m_pluginState = Unknow; - break; - case 0x00000001: - m_pluginState = Bdisconnected; - break; - case 0x00000002: - m_pluginState = Bdisabled; - break; - case 0x00000004: - m_pluginState = Bconnected; - break; - case 0x00000008: - m_pluginState = Bdisconnected; - break; - case 0x00000010: //有线正在连接 - m_pluginState = Bconnecting; - break; - case 0x00000020: //有线正在认证 - m_pluginState = Bconnecting; - break; - case 0x00000040: //有线正在获取ip转换为正在连接 - m_pluginState = Bconnecting; - break; - case 0x00000080: - m_pluginState = Bdisconnected; - break; - case 0x00000100: - m_pluginState = BconnectNoInternet; - break; - case 0x00000200: - m_pluginState = Nocable; - break; - case 0x00000400: //只有有线,有线失败 - m_pluginState = Bfailed; - break; - case 0x00010000: - m_pluginState = Adisconnected; - break; - case 0x00020000: - m_pluginState = Adisabled; - break; - case 0x00040000: - m_pluginState = Aconnected; - break; - case 0x00080000: - m_pluginState = Adisconnected; - break; - case 0x00100000: //无线正在连接 - m_pluginState = Aconnecting; - break; - case 0x00200000: //无线正在认证 - m_pluginState = Aconnecting; - break; - case 0x00400000: //无线正在获取ip转换为正在连接 - m_pluginState = Aconnecting; - break; - case 0x00800000: //无线获取ip失败 - m_pluginState = Adisconnected; - break; - case 0x01000000: - m_pluginState = AconnectNoInternet; - break; - case 0x02000000: // 只有无线 Adisconnected(无线未连接) 改为 Afailed(无线连接失败) - m_pluginState = Afailed; - break; - case 0x00010001: - m_pluginState = Disconnected; - break; - case 0x00020001: - m_pluginState = Bdisconnected;// - break; - case 0x00040001: - m_pluginState = Aconnected; - break; - case 0x00080001: - m_pluginState = Disconnected; - break; - case 0x00100001: //无线正在连接,有线启用 - m_pluginState = Aconnecting; - break; - case 0x00200001: //无线正在认证, 有线启用 - m_pluginState = Aconnecting; - break; - case 0x00400001: //无线正在获取ip,有线启用 - m_pluginState = Aconnecting; - break; - case 0x00800001: - m_pluginState = Disconnected; - break; - case 0x01000001: - m_pluginState = AconnectNoInternet; - break; - case 0x02000001: - m_pluginState = Disconnected; - break; - case 0x00010002: - m_pluginState = Adisconnected; - break; - case 0x00020002: //有线无线都禁用 - m_pluginState = Disabled; - break; - case 0x00040002: - m_pluginState = Aconnected; - break; - case 0x00080002: - m_pluginState = Adisconnected; - break; - case 0x00100002: //无线正在连接,有线禁用 - m_pluginState = Aconnecting; - break; - case 0x00200002: //无线正在认证,有线禁用 - m_pluginState = Aconnecting; - break; - case 0x00400002: //无线正在获取ip,有线禁用 - m_pluginState = Aconnecting; - break; - case 0x00800002: //有线禁用,无线未连接 - m_pluginState = Adisconnected; - break; - case 0x01000002: - m_pluginState = AconnectNoInternet; - break; - case 0x02000002: //有线禁用,无线连接失败,设为无线连接失败 Adisconnected换成Afailed - m_pluginState = Afailed; - break; - case 0x00010004: - m_pluginState = Bconnected; - break; - case 0x00020004: - m_pluginState = Bconnected; - break; - case 0x00040004: //无线已连接,有线已连接 - m_pluginState = Connected; - break; - case 0x00080004: //无线断开连接,有线已连接,状态改为有线已连接 - m_pluginState = Bconnected; - break; - case 0x00100004: //无线正在连接,有线已连接 - m_pluginState = Aconnecting; - break; - case 0x00200004: // 无线认证中.有线已连接, - m_pluginState = Aconnecting; - break; - case 0x00400004: //无线正在获取ip,有线已连接 - m_pluginState = Aconnecting; - break; - case 0x00800004: - m_pluginState = Bconnected; - break; - case 0x01000004: - m_pluginState = Bconnected; - break; - case 0x02000004: - m_pluginState = Bconnected; - break; - case 0x00010008: - m_pluginState = Disconnected; - break; - case 0x00020008: - m_pluginState = Bdisconnected; - break; - case 0x00040008: //无线已连接,有线连接失败 - m_pluginState = Aconnected; - break; - case 0x00080008: - m_pluginState = Disconnected; - break; - case 0x00100008: //无线正在连接,有线断开连接 - m_pluginState = Aconnecting; - break; - case 0x00200008: //无线正在认证,有线断开连接 - m_pluginState = Aconnecting; - break; - case 0x00400008: //无线正在获取ip,有线断开连接 - m_pluginState = Aconnecting; - break; - case 0x00800008: - m_pluginState = Disconnected; - break; - case 0x01000008: - m_pluginState = AconnectNoInternet; - break; - case 0x02000008: - m_pluginState = Disconnected; - break; - case 0x00010010: - m_pluginState = Bconnecting; - break; - case 0x00020010: - m_pluginState = Bconnecting; - break; - case 0x00040010: //有线正在连接, 无线已连接 - m_pluginState = Bconnecting; - break; - case 0x00080010: - m_pluginState = Bconnecting; - break; - case 0x00100010: //无线正在连接,有线正在连接 - m_pluginState = Connecting; - break; - case 0x00200010: //无线正在认证, 有线正在连接 - m_pluginState = Connecting; - break; - case 0x00400010: //无线正在获取ip,有线正在连接 - m_pluginState = Connecting; - break; - case 0x00800010: - m_pluginState = Bconnecting; - break; - case 0x01000010: - m_pluginState = Bconnecting; - break; - case 0x02000010: - m_pluginState = Bconnecting; - break; - case 0x00010020: //有线正在连接认证 ,无线其余操作 - m_pluginState = Bconnecting; - break; - case 0x00020020: - m_pluginState = Bconnecting; - break; - case 0x00040020: //有线正在认证, 无线已连接 - m_pluginState = Bconnecting; - break; - case 0x00080020://无线断开连接,有线正在认证 - m_pluginState = Bconnecting; - break; - case 0x00100020: //无线正在连接,有线正在认证 - m_pluginState = Connecting; - break; - case 0x00200020: //无线正在认证,有线正在认证 - m_pluginState = Connecting; - break; - case 0x00400020: // 无线正在获取ip ,有线正在认证 - m_pluginState = Connecting; - break; - case 0x00800020: // 无线获取ip失败 ,有线正在认证(仅有线正在连接,显示有线状态) - m_pluginState = Bconnecting; - break; - case 0x01000020: // 无线连上但无法访问 ,有线正在认证 - m_pluginState = Bconnecting; - break; - case 0x02000020: // 无线连接失败 ,有线正在认证 - m_pluginState = Bconnecting; - break; - case 0x00010040: //有线正在获取ip,无线启用 - m_pluginState = Bconnecting; - break; - case 0x00020040: - m_pluginState = Bconnecting; - break; - case 0x00040040: //有线正在获取ip,无线已连接 - m_pluginState = Bconnecting; - break; - case 0x00080040: - m_pluginState = Bconnecting; - break; - case 0x00100040: //无线正在连接,有线正在获取ip - m_pluginState = Connecting; - break; - case 0x00200040: //无线正在认证.有线正在获取ip - m_pluginState = Connecting; - break; - case 0x00400040: // 无线正在获取ip ,有线正在获取ip - m_pluginState = Connecting; - break; - case 0x00800040: //有线正在获取ip,无线获取ip失败 - m_pluginState = Bconnecting; - break; - case 0x01000040: - m_pluginState = Bconnecting; - break; - case 0x02000040: - m_pluginState = Bconnecting; - break; - case 0x00010080: - m_pluginState = Disconnected; - break; - case 0x00020080: - m_pluginState = Bdisconnected; - break; - case 0x00040080: - m_pluginState = Aconnected; - break; - case 0x00080080: - m_pluginState = Disconnected; - break; - case 0x00100080: //无线正在连接,有线获取ip失败 - m_pluginState = Aconnecting; - break; - case 0x00200080: //无线正在认证,有线获取ip失败 - m_pluginState = Aconnecting; - break; - case 0x00400080: // 无线正在获取ip ,有线获取ip失败 - m_pluginState = Aconnecting; - break; - case 0x00800080: - m_pluginState = Disconnected; - break; - case 0x01000080: - m_pluginState = AconnectNoInternet; - break; - case 0x02000080: - m_pluginState = Disconnected; - break; - case 0x00010100: - m_pluginState = BconnectNoInternet; - break; - case 0x00020100: - m_pluginState = BconnectNoInternet; - break; - case 0x00040100: - m_pluginState = Aconnected; - break; - case 0x00080100: - m_pluginState = BconnectNoInternet; - break; - case 0x00100100: //无线正在连接,有线已连接但无法访问 - m_pluginState = Aconnecting; - break; - case 0x00200100: //无线正在认证,有线连接但无法访问 - m_pluginState = Aconnecting; - break; - case 0x00400100: // 无线正在获取ip ,有线已连接但无法访问 - m_pluginState = Aconnecting; - break; - case 0x00800100: - m_pluginState = BconnectNoInternet; - break; - case 0x01000100: - m_pluginState = ConnectNoInternet; - break; - case 0x02000100: - m_pluginState = BconnectNoInternet; - break; - case 0x00010200: - m_pluginState = Adisconnected; - break; - case 0x00020200: - m_pluginState = Nocable; - break; - case 0x00040200: - m_pluginState = Aconnected; - break; - case 0x00080200: - m_pluginState = Adisconnected; - break; - case 0x00100200: //无线正在连接,未插入网线 - m_pluginState = Aconnecting; - break; - case 0x00200200: //无线正在认证,有线未插入网线 - m_pluginState = Aconnecting; - break; - case 0x00400200: // 无线正在获取ip ,有线未插入网线 - m_pluginState = Aconnecting; - break; - case 0x00800200: - m_pluginState = Adisconnected; - break; - case 0x01000200: - m_pluginState = AconnectNoInternet; - break; - case 0x02000200: - m_pluginState = Adisconnected; - break; - case 0x00010400: - m_pluginState = Adisconnected; - break; - case 0x00020400: //有线失败,无线禁用 - m_pluginState = Bfailed; - break; - case 0x00040400: - m_pluginState = Aconnected; - break; - case 0x00080400: - m_pluginState = Adisconnected; - break; - case 0x00100400: //无线正在连接,有线连接失败 - m_pluginState = Aconnecting; - break; - case 0x00200400: //无线正在认证,有线连接失败 - m_pluginState = Aconnecting; - break; - case 0x00400400: // 无线正在获取ip ,有线连接失败 - m_pluginState = Aconnecting; - break; - case 0x00800400: - m_pluginState = Adisconnected; - break; - case 0x01000400: - m_pluginState = AconnectNoInternet; - break; - case 0x02000400: //有线,无线都连接失败,改为无线连接失败 - m_pluginState = Failed; - break; - } - - switch (m_pluginState) { - case Unknow: - case Disabled: - case Connected: - case Disconnected: - case ConnectNoInternet: - case Adisabled: - case Bdisabled: - case Aconnected: - case Bconnected: - case Adisconnected: - case Bdisconnected: - case Aconnecting: - case Bconnecting: - case AconnectNoInternet: - case BconnectNoInternet: - case Bfailed: - case Nocable: - m_switchWireTimer->stop(); - m_timeOut = true; - break; - case Connecting: - // 启动2s切换计时,只有当计时器记满则重新计数 - if (m_timeOut) { - m_switchWireTimer->start(2000); - m_timeOut = false; - } - break; - default: - break; - } -} - -void NetworkItem::updateView() -{ - // 固定显示高度即为固定示项目数 - const int constDisplayItemCnt = 10; - auto wirelessCnt = m_wirelessItems.size(); - - if (m_switchWirelessBtnState) { - for (auto wirelessItem : m_wirelessItems) { - if (wirelessItem && wirelessItem->device()->enabled()) - // 单个设备开关控制项 - wirelessItem->setControlPanelVisible(wirelessCnt != 1); - } - } - // 设备总控开关只与是否有设备相关 - m_wirelessControlPanel->setVisible(wirelessCnt); - m_wiredControlPanel->setVisible(m_wiredItems.size()); - - m_applet->widget()->adjustSize(); - m_applet->setFixedHeight(qMin(m_applet->widget()->height(), constDisplayItemCnt * ITEM_HEIGHT)); - - if (m_wirelessControlPanel->isVisible()) { - if (!m_wirelessScanTimer->isActive()) - m_wirelessScanTimer->start(m_wirelessScanInterval * 1000); - } else { - if (m_wirelessScanTimer->isActive()) - m_wirelessScanTimer->stop(); - } -} - -void NetworkItem::updateSelf() -{ - getPluginState(); - updateMasterControlSwitch(); - refreshIcon(); - refreshTips(); - updateView(); -} - -int NetworkItem::getStrongestAp() -{ - int retStrength = -1; - for (auto wirelessItem : m_connectedWirelessDevice) { - auto apInfo = wirelessItem->getConnectedApInfo(); - if (apInfo.isEmpty()) - continue; - auto strength = apInfo.value("Strength").toInt(); - if (retStrength < strength) - retStrength = strength; - } - return retStrength; -} - -/** - * @brief 更新有线(无线)适配器的开关状态,并根据开关状态显示设备列表。 - */ -void NetworkItem::updateMasterControlSwitch() -{ - m_switchWiredBtnState = false; - m_switchWirelessBtnState = false; - - /* 获取有线适配器启用状态 */ - for (WiredItem *wiredItem : m_wiredItems) { - if (wiredItem && wiredItem->deviceEabled()) { - m_switchWiredBtnState = wiredItem->deviceEabled(); - break; - } - } - /* 更新有线适配器总开关状态(阻塞信号是为了防止重复设置适配器启用状态)*/ - m_switchWiredBtn->blockSignals(true); - m_switchWiredBtn->setChecked(m_switchWiredBtnState); - m_thirdSeparator->setVisible(m_switchWiredBtnState); - m_switchWiredBtn->blockSignals(false); - /* 根据有线适配器启用状态增/删布局中的组件 */ - for (WiredItem *wiredItem : m_wiredItems) { - if (!wiredItem) - continue; - - // wiredItem->itemApplet()->setVisible(m_switchWiredBtnState); // TODO - wiredItem->setVisible(m_switchWiredBtnState); - if (wiredItem->deviceEabled()) - m_wiredLayout->addWidget(wiredItem); - else - m_wiredLayout->removeWidget(wiredItem); - } - - /* 获取无线适配器启用状态 */ - for (auto wirelessItem : m_wirelessItems) { - if (wirelessItem && wirelessItem->deviceEanbled()) { - m_switchWirelessBtnState = wirelessItem->deviceEanbled(); - break; - } - } - /* 更新无线适配器总开关状态(阻塞信号是为了防止重复设置适配器启用状态) */ - m_switchWirelessBtn->blockSignals(true); - m_switchWirelessBtn->setChecked(m_switchWirelessBtnState); - m_secondSeparator->setVisible(m_switchWirelessBtnState && m_wiredItems.count() > 0); - m_switchWirelessBtn->blockSignals(false); - /* 根据无线适配器启用状态增/删布局中的组件 */ - for (WirelessItem *wirelessItem : m_wirelessItems) { - if (!wirelessItem) - continue; - - if (m_switchWirelessBtnState) { - m_wirelessLayout->addWidget(wirelessItem->itemApplet()); - } else { - m_wirelessLayout->removeWidget(wirelessItem->itemApplet()); - } - wirelessItem->itemApplet()->setVisible(m_switchWirelessBtnState); - wirelessItem->setVisible(m_switchWirelessBtnState); - } - - m_loadingIndicator->setVisible(m_switchWirelessBtnState || m_switchWiredBtnState); -} - -void NetworkItem::refreshTips() -{ - if (m_ipConflict) { - m_tipsWidget->setText(tr("IP conflict")); - return; - } - - switch (m_pluginState) { - case Disabled: - case Adisabled: - case Bdisabled: - m_tipsWidget->setText(tr("Device disabled")); - break; - case Connected: { - QString strTips; - QStringList textList; - int wirelessIndex = 1; - int wireIndex = 1; - for (auto wirelessItem : m_connectedWirelessDevice) { - if (wirelessItem) { - auto info = wirelessItem->getActiveWirelessConnectionInfo(); - if (!info.contains("Ip4")) - continue; - const QJsonObject ipv4 = info.value("Ip4").toObject(); - if (!ipv4.contains("Address")) - continue; - if (m_connectedWirelessDevice.size() == 1) { - strTips = tr("Wireless connection: %1").arg(ipv4.value("Address").toString()) + '\n'; - } else { - strTips = tr("Wireless Network").append(QString("%1").arg(wirelessIndex++)).append(":"+ipv4.value("Address").toString()) + '\n'; - } - strTips.chop(1); - textList << strTips; - } - } - for (auto wiredItem : m_connectedWiredDevice) { - if (wiredItem) { - auto info = wiredItem->getActiveWiredConnectionInfo(); - if (!info.contains("Ip4")) - continue; - const QJsonObject ipv4 = info.value("Ip4").toObject(); - if (!ipv4.contains("Address")) - continue; - if (m_connectedWiredDevice.size() == 1) { - strTips = tr("Wired connection: %1").arg(ipv4.value("Address").toString()) + '\n'; - } else { - strTips = tr("Wired Network").append(QString("%1").arg(wireIndex++)).append(":"+ipv4.value("Address").toString()) + '\n'; - } - strTips.chop(1); - textList << strTips; - } - } - m_tipsWidget->setTextList(textList); - } - break; - case Aconnected: { - QString strTips; - int wirelessIndex=1; - QStringList textList; - for (auto wirelessItem : m_connectedWirelessDevice) { - if (wirelessItem) { - auto info = wirelessItem->getActiveWirelessConnectionInfo(); - if (!info.contains("Ip4")) - continue; - const QJsonObject ipv4 = info.value("Ip4").toObject(); - if (!ipv4.contains("Address")) - continue; - if (m_connectedWirelessDevice.size() == 1) { - strTips = tr("Wireless connection: %1").arg(ipv4.value("Address").toString()) + '\n'; - } else { - strTips = tr("Wireless Network").append(QString("%1").arg(wirelessIndex++)).append(":"+ipv4.value("Address").toString()) + '\n'; - } - strTips.chop(1); - textList << strTips; - } - } - m_tipsWidget->setTextList(textList); - } - break; - case Bconnected: { - QString strTips; - QStringList textList; - int wireIndex = 1; - for (auto wiredItem : m_connectedWiredDevice) { - if (wiredItem) { - auto info = wiredItem->getActiveWiredConnectionInfo(); - if (!info.contains("Ip4")) - continue; - const QJsonObject ipv4 = info.value("Ip4").toObject(); - if (!ipv4.contains("Address")) - continue; - if (m_connectedWiredDevice.size() == 1) { - strTips = tr("Wired connection: %1").arg(ipv4.value("Address").toString()) + '\n'; - } else { - strTips = tr("Wired Network").append(QString("%1").arg(wireIndex++)).append(":"+ipv4.value("Address").toString()) + '\n'; - } - strTips.chop(1); - textList << strTips; - } - } - m_tipsWidget->setTextList(textList); - } - break; - case Disconnected: - case Adisconnected: - case Bdisconnected: - m_tipsWidget->setText(tr("Not connected")); - break; - case Connecting: - case Aconnecting: - case Bconnecting: { - m_tipsWidget->setText(tr("Connecting")); - return; - } - case ConnectNoInternet: - case AconnectNoInternet: - case BconnectNoInternet: - m_tipsWidget->setText(tr("Connected but no Internet access")); - break; - case Failed: - case Afailed: - case Bfailed: - m_tipsWidget->setText(tr("Connection failed")); - break; - case Unknow: - case Nocable: - m_tipsWidget->setText(tr("Network cable unplugged")); - break; - } -} - -bool NetworkItem::isShowControlCenter() -{ - bool onlyOneTypeDevice = false; - if ((m_wiredItems.size() == 0 && m_wirelessItems.size() > 0) - || (m_wiredItems.size() > 0 && m_wirelessItems.size() == 0)) - onlyOneTypeDevice = true; - - if (onlyOneTypeDevice) { - switch (m_pluginState) { - case Unknow: - case Nocable: - case Bfailed: - case AconnectNoInternet: - case BconnectNoInternet: - case Adisconnected: - case Bdisconnected: - case Adisabled: - case Bdisabled: - return true; - default: - break; - } - } else { - switch (m_pluginState) { - case Unknow: - case Nocable: - case Bfailed: - case ConnectNoInternet: - case Disconnected: - case Disabled: - return true; - default: - break; - } - } - - return false; -} - -const QStringList NetworkItem::currentIpList() -{ - QStringList nativeIpList = QStringList(); - - nativeIpList.append(getActiveWiredList()); - nativeIpList.append(getActiveWirelessList()); - - return nativeIpList; -} - -const QStringList NetworkItem::getActiveWiredList() -{ - QStringList wiredIpList; - for (auto wiredItem : m_wiredItems.values()) { - if (wiredItem) { - auto info = wiredItem->getActiveWiredConnectionInfo(); - if (!info.contains("Ip4")) - continue; - - const QJsonObject ipv4 = info.value("Ip4").toObject(); - if (!ipv4.contains("Address")) - continue; - - if (!wiredIpList.contains(ipv4.value("Address").toString())) - wiredIpList.append(ipv4.value("Address").toString()); - } - } - return wiredIpList; -} - -const QStringList NetworkItem::getActiveWirelessList() -{ - QStringList wirelessIpList; - for (auto wirelessItem : m_wirelessItems.values()) { - if (wirelessItem) { - auto info = wirelessItem->getActiveWirelessConnectionInfo(); - if (!info.contains("Ip4")) - continue; - - const QJsonObject ipv4 = info.value("Ip4").toObject(); - if (!ipv4.contains("Address")) - continue; - - if (!wirelessIpList.contains(ipv4.value("Address").toString())) - wirelessIpList.append(ipv4.value("Address").toString()); - } - } - return wirelessIpList; -} - -void NetworkItem::wirelessScan() -{ - if (m_loadingIndicator->loading()) - return; - m_loadingIndicator->setLoading(true); - QTimer::singleShot(1000, this, [ = ] { - m_loadingIndicator->setLoading(false); - }); -} diff --git a/plugins/network/networkitem.h b/plugins/network/networkitem.h deleted file mode 100644 index 712ed8a51..000000000 --- a/plugins/network/networkitem.h +++ /dev/null @@ -1,147 +0,0 @@ -#ifndef NETWORKITEM_H -#define NETWORKITEM_H - -#include "com_deepin_daemon_network.h" - -#include -#include -#include - -#include -#include -#include -#include - -DGUI_USE_NAMESPACE -DWIDGET_USE_NAMESPACE - -class PluginState; -namespace Dock { -class TipsWidget; -} -class WiredItem; -class WirelessItem; -class HorizontalSeperator; - -using DbusNetwork = com::deepin::daemon::Network; - -class NetworkItem : public QWidget -{ - Q_OBJECT - - enum PluginState - { - Unknow = 0, - // A 无线 B 有线 - Disabled, - Connected, - Disconnected, - Connecting, - //有线无线都失败 - Failed, - ConnectNoInternet, -// Aenabled, -// Benabled, - Adisabled, - Bdisabled, - Aconnected, - Bconnected, - Adisconnected, - Bdisconnected, - Aconnecting, - Bconnecting, - AconnectNoInternet, - BconnectNoInternet, - Afailed, - Bfailed, - Nocable - }; -public: - explicit NetworkItem(QWidget *parent = nullptr); - - QWidget *itemApplet(); - QWidget *itemTips(); - - void updateDeviceItems(QMap &wiredItems, QMap &wirelessItems); - - const QString contextMenu() const; - void invokeMenuItem(const QString &menuId, const bool checked); - void refreshTips(); - bool isShowControlCenter(); - - const QStringList currentIpList(); - const QStringList getActiveWiredList(); - const QStringList getActiveWirelessList(); - -public slots: - void updateSelf(); - void refreshIcon(); - void wirelessScan(); - -protected: - void resizeEvent(QResizeEvent *e) override; - void paintEvent(QPaintEvent *e) override; - bool eventFilter(QObject *obj,QEvent *event) override; - QString getStrengthStateString(int strength = 0); - -signals: - void sendIpConflictDect(int index); - -private slots: - void wiredsEnable(bool enable); - void wirelessEnable(bool enable); - void onThemeTypeChanged(DGuiApplicationHelper::ColorType themeType); - void ipConflict(const QString &ip, const QString &mac); - void onSendIpConflictDect(int index = 0); - void onDetectConflict(); - -private: - void getPluginState(); - void updateMasterControlSwitch(); - void updateView(); - int getStrongestAp(); - -private: - Dock::TipsWidget *m_tipsWidget; - QScrollArea *m_applet; - - DSwitchButton *m_switchWiredBtn; - QVBoxLayout *m_wiredLayout; - QWidget *m_wiredControlPanel; - bool m_switchWiredBtnState; - - DLoadingIndicator *m_loadingIndicator; - DSwitchButton *m_switchWirelessBtn; - QVBoxLayout *m_wirelessLayout; - QWidget *m_wirelessControlPanel; - bool m_switchWirelessBtnState; - - bool m_switchWire; - //判断定时的时间是否到,否则不重置计时器 - bool m_timeOut; - - QMap m_wiredItems; - QMap m_wirelessItems; - QMap m_connectedWirelessDevice; - QMap m_connectedWiredDevice; - - QPixmap m_iconPixmap; - PluginState m_pluginState; - QTimer *refreshIconTimer; - QTimer *m_switchWireTimer; - QTimer *m_wirelessScanTimer; - int m_wirelessScanInterval; - - HorizontalSeperator *m_firstSeparator; - HorizontalSeperator *m_secondSeparator; - HorizontalSeperator *m_thirdSeparator; - - DbusNetwork *m_networkInter; - QStringList m_disconflictList; // 解除冲突数据列表 - QMap m_conflictMap; // 缓存有线和无线冲突的ip列表 - QTimer *m_detectConflictTimer; // 定时器自检,当其他主机主动解除ip冲突,我方需要更新网络状态 - bool m_ipConflict; // ip冲突的标识 - bool m_ipConflictChecking; // 标记是否正在检测中 -}; - -#endif // NETWORKITEM_H diff --git a/plugins/network/networkplugin.cpp b/plugins/network/networkplugin.cpp deleted file mode 100644 index 434c25439..000000000 --- a/plugins/network/networkplugin.cpp +++ /dev/null @@ -1,268 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "networkplugin.h" -#include "networkitem.h" -#include "item/wireditem.h" -#include "item/wirelessitem.h" - -#include - -using namespace dde::network; - -#define STATE_KEY "enabled" - -NetworkPlugin::NetworkPlugin(QObject *parent) - : QObject(parent) - , m_networkModel(nullptr) - , m_networkWorker(nullptr) - , m_networkItem(nullptr) - , m_hasDevice(false) -{ -} - -const QString NetworkPlugin::pluginName() const -{ - return "network"; -} - -const QString NetworkPlugin::pluginDisplayName() const -{ - return tr("Network"); -} - -void NetworkPlugin::init(PluginProxyInterface *proxyInter) -{ - m_proxyInter = proxyInter; - - if (m_networkItem) - return; - - m_networkItem.reset(new NetworkItem); - - if (!pluginIsDisable()) { - loadPlugin(); - } -} - -void NetworkPlugin::invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked) -{ - if (itemKey == NETWORK_KEY) { - return m_networkItem->invokeMenuItem(menuId, checked); - } -} - -void NetworkPlugin::refreshIcon(const QString &itemKey) -{ - if (itemKey == NETWORK_KEY) { - m_networkItem->refreshIcon(); - } -} - -void NetworkPlugin::pluginStateSwitched() -{ - m_proxyInter->saveValue(this, STATE_KEY, pluginIsDisable()); - - refreshPluginItemsVisible(); -} - -bool NetworkPlugin::pluginIsDisable() -{ - return !m_proxyInter->getValue(this, STATE_KEY, true).toBool(); -} - -const QString NetworkPlugin::itemCommand(const QString &itemKey) -{ - Q_UNUSED(itemKey) - return (m_hasDevice && !m_networkItem->isShowControlCenter()) - ? QString() - : QString("dbus-send --print-reply " - "--dest=com.deepin.dde.ControlCenter " - "/com/deepin/dde/ControlCenter " - "com.deepin.dde.ControlCenter.ShowModule " - "\"string:network\""); -} - -const QString NetworkPlugin::itemContextMenu(const QString &itemKey) -{ - if (itemKey == NETWORK_KEY) { - return m_networkItem->contextMenu(); - } - - return QString(); -} - -QWidget *NetworkPlugin::itemWidget(const QString &itemKey) -{ - if (itemKey == NETWORK_KEY) { - return m_networkItem.data(); - } - - return nullptr; -} - -QWidget *NetworkPlugin::itemTipsWidget(const QString &itemKey) -{ - if (itemKey == NETWORK_KEY) { - return m_networkItem->itemTips(); - } - - return nullptr; -} - -QWidget *NetworkPlugin::itemPopupApplet(const QString &itemKey) -{ - if (itemKey == NETWORK_KEY && m_hasDevice && !m_networkItem->isShowControlCenter()) { - return m_networkItem->itemApplet(); - } - - return nullptr; -} - -int NetworkPlugin::itemSortKey(const QString &itemKey) -{ - const QString key = QString("pos_%1_%2").arg(itemKey).arg(Dock::Efficient); - - return m_proxyInter->getValue(this, key, 3).toInt(); -} - -void NetworkPlugin::setSortKey(const QString &itemKey, const int order) -{ - const QString key = QString("pos_%1_%2").arg(itemKey).arg(Dock::Efficient); - - m_proxyInter->saveValue(this, key, order); -} - -void NetworkPlugin::pluginSettingsChanged() -{ - refreshPluginItemsVisible(); -} - -//bool NetworkPlugin::isConnectivity() -//{ -// return NetworkModel::connectivity() == Connectivity::Full; -//} - -void NetworkPlugin::onDeviceListChanged(const QList devices) -{ - QMap wirelessItems; - QMap wiredItems; - - int wiredDeviceCnt = 0; - int wirelessDeviceCnt = 0; - for (auto device : devices) { - if (device && device->type() == NetworkDevice::Wired) - wiredDeviceCnt++; - else - wirelessDeviceCnt++; - } - - // 编号 (与控制中心有线设备保持一致命名) - int wiredNum = 0; - int wirelessNum = 0; - QString text; - - for (auto device : devices) { - const QString &path = device->path(); - // new device - DeviceItem *item = nullptr; - switch (device->type()) { - case NetworkDevice::Wired: - wiredNum++; - if (wiredDeviceCnt == 1) - text = tr("Wired Network"); - else - text = tr("Wired Network %1").arg(wiredNum); - item = new WiredItem(static_cast(device), text); - wiredItems.insert(path, static_cast(item)); - - connect(static_cast(item), &WiredItem::wiredStateChanged, - m_networkItem.data(), &NetworkItem::updateSelf); - connect(static_cast(item), &WiredItem::enableChanged, - m_networkItem.data(), &NetworkItem::updateSelf); - connect(static_cast(item), &WiredItem::activeConnectionChanged, - m_networkItem.data(), &NetworkItem::updateSelf); - break; - case NetworkDevice::Wireless: - item = new WirelessItem(static_cast(device)); - static_cast(item)->setDeviceInfo(wirelessDeviceCnt == 1 ? -1 : ++wirelessNum); - wirelessItems.insert(path, static_cast(item)); - - connect(static_cast(item), &WirelessItem::queryActiveConnInfo, - m_networkWorker.data(), &NetworkWorker::queryActiveConnInfo); - connect(static_cast(item), &WirelessItem::requestActiveAP, - m_networkWorker.data(), &NetworkWorker::activateAccessPoint); - connect(static_cast(item), &WirelessItem::requestDeactiveAP, - m_networkWorker.data(), &NetworkWorker::disconnectDevice); - connect(static_cast(item), &WirelessItem::feedSecret, - m_networkWorker.data(), &NetworkWorker::feedSecret); - connect(static_cast(item), &WirelessItem::cancelSecret, - m_networkWorker.data(), &NetworkWorker::cancelSecret); - connect(static_cast(item), &WirelessItem::requestWirelessScan, - m_networkWorker.data(), &NetworkWorker::requestWirelessScan); - connect(static_cast(item), &WirelessItem::createApConfig, - m_networkWorker.data(), &NetworkWorker::createApConfig); - connect(static_cast(item), &WirelessItem::queryConnectionSession, - m_networkWorker.data(), &NetworkWorker::queryConnectionSession); - - connect(static_cast(item), &WirelessItem::deviceStateChanged, - m_networkItem.data(), &NetworkItem::updateSelf); - connect(static_cast(item), &WirelessItem::requestWirelessScan, - m_networkItem.data(), &NetworkItem::wirelessScan); - - m_networkWorker->requestWirelessScan(); - break; - default: - Q_UNREACHABLE(); - } - - connect(item, &DeviceItem::requestSetDeviceEnable, m_networkWorker.data(), &NetworkWorker::setDeviceEnable); - connect(m_networkModel.data(), &NetworkModel::connectivityChanged, item, &DeviceItem::refreshConnectivity); - connect(m_networkModel.data(), &NetworkModel::connectivityChanged, m_networkItem.data(), &NetworkItem::updateSelf); - } - - m_hasDevice = wiredItems.size() || wirelessItems.size(); - m_networkItem->updateDeviceItems(wiredItems, wirelessItems); -} - -void NetworkPlugin::loadPlugin() -{ - m_networkModel.reset(new NetworkModel); - m_networkWorker.reset(new NetworkWorker(m_networkModel.data())); - - connect(m_networkModel.data(), &NetworkModel::deviceListChanged, this, &NetworkPlugin::onDeviceListChanged); - - m_networkModel->moveToThread(qApp->thread()); - m_networkWorker->moveToThread(qApp->thread()); - - onDeviceListChanged(m_networkModel->devices()); - - m_proxyInter->itemAdded(this, NETWORK_KEY); -} - -void NetworkPlugin::refreshPluginItemsVisible() -{ - if (pluginIsDisable()) { - m_proxyInter->itemRemoved(this, NETWORK_KEY); - } else { - m_proxyInter->itemAdded(this, NETWORK_KEY); - } -} diff --git a/plugins/network/networkplugin.h b/plugins/network/networkplugin.h deleted file mode 100644 index 0c9eaf93f..000000000 --- a/plugins/network/networkplugin.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2011 ~ 2018 Deepin Technology Co., Ltd. - * - * Author: sbw - * - * Maintainer: sbw - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef NETWORKPLUGIN_H -#define NETWORKPLUGIN_H - -#include "pluginsiteminterface.h" -#include "item/deviceitem.h" - -#include -#include - -#define NETWORK_KEY "network-item-key" - -class NetworkItem; -class NetworkPlugin : public QObject, PluginsItemInterface -{ - Q_OBJECT - Q_INTERFACES(PluginsItemInterface) - Q_PLUGIN_METADATA(IID "com.deepin.dock.PluginsItemInterface" FILE "network.json") - -public: - explicit NetworkPlugin(QObject *parent = nullptr); - - const QString pluginName() const override; - const QString pluginDisplayName() const override; - void init(PluginProxyInterface *proxyInter) override; - void invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked) override; - void refreshIcon(const QString &itemKey) override; - void pluginStateSwitched() override; - bool pluginIsAllowDisable() override { return true; } - bool pluginIsDisable() override; - const QString itemCommand(const QString &itemKey) override; - const QString itemContextMenu(const QString &itemKey) override; - QWidget *itemWidget(const QString &itemKey) override; - QWidget *itemTipsWidget(const QString &itemKey) override; - QWidget *itemPopupApplet(const QString &itemKey) override; - - int itemSortKey(const QString &itemKey) override; - void setSortKey(const QString &itemKey, const int order) override; - - void pluginSettingsChanged() override; - -// static bool isConnectivity(); - -private slots: - void onDeviceListChanged(const QList devices); - -private: - void loadPlugin(); - void refreshPluginItemsVisible(); - -private: - QScopedPointer m_networkModel; - QScopedPointer m_networkWorker; - - QScopedPointer m_networkItem; - - bool m_hasDevice; -}; - -#endif // NETWORKPLUGIN_H diff --git a/plugins/network/resources/common/list_select.png b/plugins/network/resources/common/list_select.png deleted file mode 100644 index 886736105df8591d6a50568e75e8642c7d408e74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmVPx$wn;=mR5%fhQ#(ilK@fejcb7mAu`(8lAOu7qApSsNnKbDIJBxsY5G`!%?G({~ zAecU2txYTyL{S706;r9GXeEM0O!n5D)gv28qTB3z-kY7@5`LYbo$^3cQU*{dMd;OT zMGE%-66nfzIH+(=^=Yq!O1J6D-d_N zVG4f3ngb%=5f@lbxF|mOIDXMN08Ukkj4nZ?So`ZNkGm*KVEL?SK~+lpjLI?sU6DE! zGyM+6q5=y#bq*37=9(r32EO|{2)pSJ#-ra89_=J#;|`XNs(Adckw#WRFUg&4zIjvF zx|GOGdPsH)tW0>=zLGe2_HCGvdBJpRsHpoeXnXV55^Wx^mhf=!BuzluUz4fWa*VTs z4hpvt?`G#}G?sWPd5osec;R!yho7y7wAKVf?qWJLZ<@%v&Fk5kQu8vFIczZjc&B-{ yIVz`CgVsyzV@&W5*lS9#VGX`Bz9-fAJAVOTu&U0u{Yv=&0000Px(Qb|NXR9FeMmtANaRTRh1nNOo_LK(~q=Z+aN_P4F*#b3VuBK z;6p0}>WdG}L&UbA2o@2k4?d+D35XE1QfjKyB(<6>shUMk*fBY z>$TIvk6|`WXr5cVHT2S5l*zmSi2I4Cs<^i|iikIX=wmd^!#}m-AI0WG3h3w|ai&1Gro8P#@L7tTkS8wMVG!-lD;t zwJMBWci`o(voM?UsW<}_#(kr0IO%Dd<#S%@QHy{-zfp1FGCY2R@^CQ-OPJhH_G8Sp zuCcXJ4CQEzH3%nKbxu9P*t7%tzs!Q=6h_8d3Du}oexcmXa>7@c0LQj@@S7IF!GSQi zh@nbhD>m6}h1yE(^Mc`Miw&WwWG!WHrLp)qzVh5PaQA zgs#mV{OXLC`hY`3N7#}tenz*ZT7(aG>F~~W9Ui@Nv4{%hzP(+8J9LDM?G@dvSYHAz zlca9a(RhG=<}z8KA-wmv4hhc2!q&A(gY{M3zIP4f;3A*-xJ}r+1yoc(>N>%zXR_|< zR`4p{-=V|0N>9WK_p7kGp6^?3J>xd?{kCM$1+)oUQAimHSVKBP*9cx4$U)X2s5TKk zU=e%QDsZ6DgO5x((0$&&XF~!+n1qcDJ=tB3ZJ&zp37B`+EAZA<4HV38!*qtAqu+wb zzXPtZI*O{cDywR>GkhGTtzIaYuU0%`o0_3Z?!Z0>`-;Pu6 z`H>%d8+7{)ah|2Z-Pp`>ncVRXF#o7oZ5-p;`YI0mzxW74SbmIrIkV;A XJw9fJ6 zxY2hg?-PH;mB!|gJ^7-a&wzkrz(nIo-lLz(3+6KCm=b#-To?fXViP#(N3}>>Qh+~~?+AS4WVYERYU97*N&ezm!yjI*AOcKt qbx-jB^puL&ccDWcPx$NJ&INR45glQn60MKn%4n3Ka;bgam5_U@J_WC}Kd&?ZyZ210Bj|(1C%K8L`nB zu|S!afQ>Ghk&sFeC`8HO=k&-a>Qqb7#m|2B^PQPIYu(tD&!68@OVk#4YZ@9c(O`9P z;cVF9iAxu(u-)tQFwe3}@gj#+&e#OO$@6h|2V99t%JW;Y_PFHf1mMP3%rt~U*P+Q6O zGe8{qfXWl8=+u2EW&1hc7%4n(AZ`!yVNS@y*Ly6;h&cmi?&r`l^DKZ~4mJTBAyQ%| sXT}-3twF35E{?b4c-u`Rh|OH`Kh4#Xcx*b4Z~y=R07*qoM6N<$f?boY0RR91 diff --git a/plugins/network/resources/common/notify_close_press@2x.png b/plugins/network/resources/common/notify_close_press@2x.png deleted file mode 100644 index 7d67765b4382dcd75440c6994dd941f5716b1337..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmVPx%r%6OXR7efImQ9NjK@f(kdh&7cAS`;&lP3k;T@?gHMO^Tt2f+{*e~U+di>x8S z-UUTgQ4rM4D(K16uAl@Iy(E*Fvfc?j+v)8YCvk8fq`Uguf6sTJkWlWRtn}3hYe?1+`bRhR9^#VUKo6WWpFpTfKc0o4%XWr5Gj6TOC9n97N6M|{UVV= zA%SmmqrzCxzWVd>KJ)MV9OlNdhOSB3aD_3^C8fOzLdv3R@|s=7qC_h5rL3<=n%y!H z##H#t-?KE9r}IL=LegxN0sYAAS=6;XT6SbYKEX2j=9{5G*xV!uC5W57p>yi{1uOen zEN_fHg}&;z8*yEQV6HRw#m+v8FHh3sg*%Qms)3#L_NgpOQ5N_D^e3Dgh6B5dAq{Lc z(hR0^LORRHB7{Jre6?sv5dye2lpGq}CD`(Fh#Eu#AG*SN+FEL4zNg-DAil_`K{S)% zdO$c%9K)ym+QV-SL?^2~v<9gsQe7>to;d)tP}Cq;ck~x|Fc&`D;>r5Slg1j{|NmA9 fyHK?2EcO2YZ*iaQG~OMb00000NkvXXu0mjfZ?#?x diff --git a/plugins/network/resources/wired/network-disabled-symbolic-dark.svg b/plugins/network/resources/wired/network-disabled-symbolic-dark.svg deleted file mode 100644 index d6d5fc20d..000000000 --- a/plugins/network/resources/wired/network-disabled-symbolic-dark.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/plugins/network/resources/wired/network-disabled-symbolic.svg b/plugins/network/resources/wired/network-disabled-symbolic.svg deleted file mode 100644 index 0588d0f06..000000000 --- a/plugins/network/resources/wired/network-disabled-symbolic.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/plugins/network/resources/wired/network-error-symbolic-dark.svg b/plugins/network/resources/wired/network-error-symbolic-dark.svg deleted file mode 100644 index e0966b1d8..000000000 --- a/plugins/network/resources/wired/network-error-symbolic-dark.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/plugins/network/resources/wired/network-error-symbolic.svg b/plugins/network/resources/wired/network-error-symbolic.svg deleted file mode 100644 index 3d29d5838..000000000 --- a/plugins/network/resources/wired/network-error-symbolic.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/plugins/network/resources/wired/network-none-symbolic-dark.svg b/plugins/network/resources/wired/network-none-symbolic-dark.svg deleted file mode 100644 index 9e0bc5e31..000000000 --- a/plugins/network/resources/wired/network-none-symbolic-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wired/network-none-symbolic.svg b/plugins/network/resources/wired/network-none-symbolic.svg deleted file mode 100644 index 2f0b286bc..000000000 --- a/plugins/network/resources/wired/network-none-symbolic.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wired/network-offline-symbolic.svg b/plugins/network/resources/wired/network-offline-symbolic.svg deleted file mode 100644 index 6e9cd759c..000000000 --- a/plugins/network/resources/wired/network-offline-symbolic.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wired/network-online-symbolic-dark.svg b/plugins/network/resources/wired/network-online-symbolic-dark.svg deleted file mode 120000 index 98645121c..000000000 --- a/plugins/network/resources/wired/network-online-symbolic-dark.svg +++ /dev/null @@ -1 +0,0 @@ -network-wired-symbolic-dark.svg \ No newline at end of file diff --git a/plugins/network/resources/wired/network-online-symbolic.svg b/plugins/network/resources/wired/network-online-symbolic.svg deleted file mode 120000 index 8fad73890..000000000 --- a/plugins/network/resources/wired/network-online-symbolic.svg +++ /dev/null @@ -1 +0,0 @@ -network-wired-symbolic.svg \ No newline at end of file diff --git a/plugins/network/resources/wired/network-warning-symbolic-dark.svg b/plugins/network/resources/wired/network-warning-symbolic-dark.svg deleted file mode 100644 index ebd1e11d3..000000000 --- a/plugins/network/resources/wired/network-warning-symbolic-dark.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/plugins/network/resources/wired/network-warning-symbolic.svg b/plugins/network/resources/wired/network-warning-symbolic.svg deleted file mode 100644 index 258a63b6f..000000000 --- a/plugins/network/resources/wired/network-warning-symbolic.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/plugins/network/resources/wired/network-wired-symbolic-connecting1-dark.svg b/plugins/network/resources/wired/network-wired-symbolic-connecting1-dark.svg deleted file mode 100644 index e3127d2fd..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic-connecting1-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wired/network-wired-symbolic-connecting1.svg b/plugins/network/resources/wired/network-wired-symbolic-connecting1.svg deleted file mode 100644 index 4df47e0d9..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic-connecting1.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - network-wired-symbolic-connecting1 - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/plugins/network/resources/wired/network-wired-symbolic-connecting2-dark.svg b/plugins/network/resources/wired/network-wired-symbolic-connecting2-dark.svg deleted file mode 100644 index 46534627a..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic-connecting2-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wired/network-wired-symbolic-connecting2.svg b/plugins/network/resources/wired/network-wired-symbolic-connecting2.svg deleted file mode 100644 index 0dc1af6f3..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic-connecting2.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - network-wired-symbolic-connecting2 - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/plugins/network/resources/wired/network-wired-symbolic-connecting3-dark.svg b/plugins/network/resources/wired/network-wired-symbolic-connecting3-dark.svg deleted file mode 100644 index 5efbbc6d9..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic-connecting3-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wired/network-wired-symbolic-connecting3.svg b/plugins/network/resources/wired/network-wired-symbolic-connecting3.svg deleted file mode 100644 index 4c6ce3716..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic-connecting3.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - network-wired-symbolic-connecting3 - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/plugins/network/resources/wired/network-wired-symbolic-connecting4-dark.svg b/plugins/network/resources/wired/network-wired-symbolic-connecting4-dark.svg deleted file mode 100644 index a1d03e412..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic-connecting4-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wired/network-wired-symbolic-connecting4.svg b/plugins/network/resources/wired/network-wired-symbolic-connecting4.svg deleted file mode 100644 index 487a15eb7..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic-connecting4.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - network-wired-symbolic-connecting4 - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/plugins/network/resources/wired/network-wired-symbolic-connecting5-dark.svg b/plugins/network/resources/wired/network-wired-symbolic-connecting5-dark.svg deleted file mode 100644 index 9247612c1..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic-connecting5-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wired/network-wired-symbolic-connecting5.svg b/plugins/network/resources/wired/network-wired-symbolic-connecting5.svg deleted file mode 100644 index 1f76ba5ce..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic-connecting5.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - network-wired-symbolic-connecting5 - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/plugins/network/resources/wired/network-wired-symbolic-dark.svg b/plugins/network/resources/wired/network-wired-symbolic-dark.svg deleted file mode 100644 index 50d901c62..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wired/network-wired-symbolic.svg b/plugins/network/resources/wired/network-wired-symbolic.svg deleted file mode 100644 index b014c7e22..000000000 --- a/plugins/network/resources/wired/network-wired-symbolic.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/disconnect.svg b/plugins/network/resources/wireless/disconnect.svg deleted file mode 100644 index f18f360a1..000000000 --- a/plugins/network/resources/wireless/disconnect.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/disconnect_dark.svg b/plugins/network/resources/wireless/disconnect_dark.svg deleted file mode 100644 index cf2971327..000000000 --- a/plugins/network/resources/wireless/disconnect_dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/refresh.svg b/plugins/network/resources/wireless/refresh.svg deleted file mode 100644 index 5ef071ada..000000000 --- a/plugins/network/resources/wireless/refresh.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/refresh_dark.svg b/plugins/network/resources/wireless/refresh_dark.svg deleted file mode 100644 index dc2950711..000000000 --- a/plugins/network/resources/wireless/refresh_dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/security.svg b/plugins/network/resources/wireless/security.svg deleted file mode 100644 index b126160dc..000000000 --- a/plugins/network/resources/wireless/security.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/security_dark.svg b/plugins/network/resources/wireless/security_dark.svg deleted file mode 100644 index 6301d47de..000000000 --- a/plugins/network/resources/wireless/security_dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/select.svg b/plugins/network/resources/wireless/select.svg deleted file mode 100644 index e1c2b319c..000000000 --- a/plugins/network/resources/wireless/select.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/select_dark.svg b/plugins/network/resources/wireless/select_dark.svg deleted file mode 100644 index 4071c706a..000000000 --- a/plugins/network/resources/wireless/select_dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/spinner14/Spinner01.png b/plugins/network/resources/wireless/spinner14/Spinner01.png deleted file mode 100644 index b2e1ac2b7b2fbf970caaef607227e1eb0e383703..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H?&;zfqA@W! z;Q*tE`9JaL_dmu9O}F9J<76vq%S&@(^J8Oc3z%e5_w&dERh6R$Ixas5G~jx{&9H7c Wd*H%#?7M+RFnGH9xvXFMGaqA@W! z;Q(Vu-v9LQo8RN5r`rhYb?*Nz>Gc0^n#J-B|LxiJOm7@q_5Y04?SH2yEXx$>VVcFr YuwV(_WYN4vIiMj7p00i_>zopr0Boi>!~g&Q diff --git a/plugins/network/resources/wireless/spinner14/Spinner03.png b/plugins/network/resources/wireless/spinner14/Spinner03.png deleted file mode 100644 index 7cfeadf1e9ddb2a8010a46df3256dbd3e4f7f7b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ|y;pyTSqA@W! ztjdY6r`Uayb+{^dp=4Chw=pSF;7whgylZ_uJS!S??W oZ~T32e%LrB%k7}X0%ZnmdKI;Vst029(czW@LL diff --git a/plugins/network/resources/wireless/spinner14/Spinner04.png b/plugins/network/resources/wireless/spinner14/Spinner04.png deleted file mode 100644 index 639485b02fa3f2d459912d999a39cc9af3bbe10c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ|y!2*)_jkznS}A#wYNV9Ve8q476>gTe~DWM4fXGlYi diff --git a/plugins/network/resources/wireless/spinner14/Spinner06.png b/plugins/network/resources/wireless/spinner14/Spinner06.png deleted file mode 100644 index d45832f104c4deb50d7bf1bd8e3cc3130a13693a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{%Mzux8ZPs??STi7%EV9OgjFVCo);rcUV zr<}(7U-KCzCm(qoA`$U*e&odYiBiJK&G%x>-MkllS_==xy{0BfAs2u PT*u()>gTe~DWM4f9imOM diff --git a/plugins/network/resources/wireless/spinner14/Spinner07.png b/plugins/network/resources/wireless/spinner14/Spinner07.png deleted file mode 100644 index bc268048df1127bb737cae2120d8af17cb9dc816..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{10D#;e2C<#T(Vz`)*HK@-e!9nz{IV3uWfV|NjQb-p}c{ zcH+Q+10O!wT(?QHo5q~8D#w%u2zriWr6eRI1l;_4|NnjaHs1gL4KoCCm6@5D53irk z(=H(?`Om=6NMq6>{-oF2{u}Y|{P!$+si7doz+gO0PPi|=;3?2e44$rjF6*2UngHRS BTc-d3 diff --git a/plugins/network/resources/wireless/spinner14/Spinner09.png b/plugins/network/resources/wireless/spinner14/Spinner09.png deleted file mode 100644 index 5a820920370b08d84c83fe7274ad994cb8ad95c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ|i=;`7ZqA@W! zL1NB=hxWqZC%*>Uq+V}MaPm2lneylOfe-o8%FLJTFSdo-s6^{r{gyi^<@WZ;M{aYl z|Nm}iU@+t4mj3~Xik|ZguIrUutl$6N`2S>8Pvz-4%%|kGV&YCNnd0^POq`n^dx;7BMjNYAWR3>)sD^Edzt6tDnm{r-UW|*$7vr diff --git a/plugins/network/resources/wireless/spinner14/Spinner10.png b/plugins/network/resources/wireless/spinner14/Spinner10.png deleted file mode 100644 index 0670f68f9efef4153d109637b7189bc942e9a6b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ|C(bL5-L}Oxd z!U9c>+B2GB|AHhVJ31w5mCl^`STFHk#z8Du<&<0dUmYf|Pq+57)aU#?{>A>2`}S{% zi*iyd9{hNI__=Yogrwwpqkri}s`uO^GJc#_IrvTY@AKpHPe*uMJbwIxXT!wCQmN?- z$E6?5;bNV0r^a4VLPFx-pWny5Cb`)$vss#@ZaaVG&Hu8APp<6$FOfBab%woN%9C3E trr!UOK%gV>&-jXAi{U@jqlXyT7#j8(^sTN>ivv2I!PC{xWt~$(69DBabDsbJ diff --git a/plugins/network/resources/wireless/spinner14/Spinner11.png b/plugins/network/resources/wireless/spinner14/Spinner11.png deleted file mode 100644 index 9014f8b4d1db9e9a8598c507434c92e4eb316092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ|C-qXb~L}Oxd zg2WaFi$|4B0WT&CNX+l7So=R!Vus|_lbfcl{xQig{o__Uq1=>>U~&i76=>Df+t? z`b~0+liPRq|9@kj)ZeFnOluYCJ-^QD-xMQ}9Y;@}`8ioddTG!8=zr-6Gk$!$Z_Yc( zsMS__y7NtvcK~k uy0|5uZ2J=)bmOP}yvB$2%AQgi85vww7?*84t27_zbOujXKbLh*2~7aSGkkmi diff --git a/plugins/network/resources/wireless/spinner14/Spinner12.png b/plugins/network/resources/wireless/spinner14/Spinner12.png deleted file mode 100644 index 8234d08f1e37af9e257a2d7656c25c8faf2b4d5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{X($mE;L}Oxd zg2X%rl|Pxv^)H;0*?>ST$mHMO|M5K&Cr+GglP&$O*Z>43Epku2l>05czixlxkN@^P zD$DonK6~KYfddCVzrSDam=Qh|M)Ag@cRE5 z_4Sf`MjMUyJg+-C>%)RcrMk?_kL#PvPQCe|f8^MSgs=U*iRYQ!kIA1XVqiXNpUUDV R@e1fE22WQ%mvv4FO#p(9hAsdA diff --git a/plugins/network/resources/wireless/spinner14/Spinner13.png b/plugins/network/resources/wireless/spinner14/Spinner13.png deleted file mode 100644 index 1a30fbce85923b32bfacbf16f90afa72601c83b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{X*we)^L}Oxd zf&{BZgZaD84FNwcyRZR)TaXEtt6gd8kK-F2oBysioRlm2sb1^!0U&T$bu53?{74B2 zj}oo?lclHk^Zf7s`}gPqw@JPAk`h6Z5)$+O)YLtdk?BQ1%_FK&P zHGg7b<41dDX69z6-{r0GJUx~?JUrI(LW|xst~`*n_>x~+=zk!nyWed1?)d-uXbDM) zrT+~7*f*?U+a3Jhu;g!gQ;WrEd$;fR-^`JZn`Tt!8pgyB{m&-okNwL-K<_Yky85}S Ib4q9e0LNT=(z*ZbQ?~uPuDZnk%d_Iu|9Spj|76Vh z(!e$`;m6Sf2Ns+-a45jhesFo z*uQ%F=ltJSZ^SFr*rt6*-)|u$DJAjW(7?c8!}HkS)TCsed$x)7JpW@wB_wW00KpFK^{FzgpYd;A g(u<4#yL4C?l|~1J&5}(D z(o5Te*bdw7y8J%d_-^SxhWQ_F{|=4+5&!ep`89@>iSA#8rT=)}&zsGZAz+v-@LMra zG|TL){f;yD)t^;;ekEh)u-`q5b+Sv*oV8areYjP8YOj-iI9tPctv@xQbC_OSZn{&a z`ZB6)^185v6T`}jGk&HDIxrfTx@ZxJ_Y~cJs4+ zwF^EM-mzerut?)pMTB^&&^M+oR^ch`z~g-;wC2R&!>$9nkj- Mp00i_>zopr07@8_^8f$< diff --git a/plugins/network/resources/wireless/spinner14/Spinner17.png b/plugins/network/resources/wireless/spinner14/Spinner17.png deleted file mode 100644 index 7eb564c65d9b41ba7f515df363f1debb45a769ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ|?$J50zL}TL7 zNgKVG0|i{q+iXr040myL6xp;UA#-7AN9$ZMF*co?w>eDz8k>6MAL!5E4-hrcd_LxdJ`!A+O}}UvyE@9)u*w?b1X10h|`S8?PZCRV8wTp6? z3}qV(dL|V)++YWCf&z=IhEW<6a!+cJ_(qZ=Q~O(V5N1*UBhZ zy*S6-7kojvG;i;%k?df>y-}IwAn*6!b=0wUY)+sy-X6ltK+qlXng8p4`Tw*2 z{QjXnVPV&74PPE0@cBREzqi4k^dHBLoh)sL@GVdX{xM^6itiGJ)Ybo!xXkX$N=PiY zcrdc)>YU9#vh);t>u=Uo|4mPt#dH0{hyK9E#)*bACLCjDzage#weh9!Q=5M)+M8}1 zku1y<;Hfs6JF!u*sd3`O`7h<0pUu8{$$a9|$b!t2l*C&f{=dK9{{O#WT=n*-S7N(t a7&gxIynOrh*5AO;WAJqKb6Mw<&;$T!m7kOV diff --git a/plugins/network/resources/wireless/spinner14/Spinner19.png b/plugins/network/resources/wireless/spinner14/Spinner19.png deleted file mode 100644 index 81593d46b7c5c80a24f022e0c88ead297c128052..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410 zcmV;L0cHM)P)bVG7wVRUbD004NLb4y-7D@iRC9J=c(t@_uE4lNEXDkHBw^X z;cl9@rW^bB(tjiwI@l6HmKGF^8<*RS+CfpY^q7F_?&@_{C=p5( zLF`q%_j;(RVMwRN`AH1Oz?7eTi+#Kdj!UmW6!y$j7Gv|3RIB)i_@% diff --git a/plugins/network/resources/wireless/spinner14/Spinner20.png b/plugins/network/resources/wireless/spinner14/Spinner20.png deleted file mode 100644 index efa6ae18a9e2af59fa04ea82f2a5f0e7e7b220f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCeg#<>}%WqA@W! zP=JsoWF2t-PxCCjvPF3U`2YLgo*tg>|Mvc!d{XIXRa@iChyU;I z=TYP7;W3NIeWJ4`>DY-gZ%%5e>}lYMkN|<1Gnf7Q|Ns5*+gkgM zZEq<#U{WL&J1sRK!5}d)g-;=fpQ%73esglhkMk~@jxA)7`L>y()qbyP)bVG7wVRUbD004NLb4y-7D@iRW5N zn5_N_gM_3KVWbfkq(rwvnkcTR&(!4FoF+H$rtf?2eR(hWhzMkM->k2OF|PLmePi9; z%^dx955r5(##J8RsyQ&~03$K%Ts<@SeEXq7` z>6U1>f(K7W{|2k#wJoZV&RPDI7V_T#B7gfJiyt_5Z>Sc6&k#v)Gio^}| z2a*Xv50~eJb2%TIxJZ#h;Y2W_!@`%-{`>pHJ+qZ9byKT2FaP}Pitz8A`q^TRtDdAD z-ZY;(o#6meDB~X2;;+mnVpk=e(%JY^E;ZV=ZjWE+qpH6Q+u4G?TOZ;|1_m#Kr>mdK II;Vst0QuXVfdBvi diff --git a/plugins/network/resources/wireless/spinner14/Spinner23.png b/plugins/network/resources/wireless/spinner14/Spinner23.png deleted file mode 100644 index 51010052d99cc71667dbf28e096e4b396bf57daf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 426 zcmV;b0agBqP)bVG7wVRUbD004NLb4y-7D@iRSWWWK~iZ5v}|7Q{S{{P=ChJKxQ=<-asG_o+U9AIQ(IL^h) z^qQ~o-cE`3uclZv3WYrj7K(i83ga^}{4-!={Ab9(#F)v>At1%@pYfu!7#xwu3N=^JRTWS0MKPtQa+rw>S<79cp$i!It?ypn}HjQV~8Gk>M zWY1t=VmSN%KSM9XMI->_UH=3B|7TeD{~v<}&cMM2zW-o2%)r3Fz|72`N0P=gUxs%K z3=G@;F)-XGMIV)ciur#&8QX7W#Hxq;@h|)D0A@z!6LPjcrYku7=YWZ;sr{E`VEE61 zQ{(+Ztc(Bu|6jz&$msU}-w#O!1_lOW;+}b|2it3|Jl*S0kQ5| U$_g~$p#T5?07*qoM6N<$g3{^1rvLx| diff --git a/plugins/network/resources/wireless/spinner14/Spinner24.png b/plugins/network/resources/wireless/spinner14/Spinner24.png deleted file mode 100644 index 375450e5fd16b227ee2dfa66ac79b46088d65afa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmV;S0bc%zP)bVG7wVRUbD004NLb4y-7D@iR^k-tkqVH7~m{hmrZt?adgg=RtJP!SOkSV;W^4bjkIgVG#s zH8->cK~vDwuc3b-2&~1`t)VHGj9fA;-)#s9$%lE?bI*4#e9#7GtK0`F?Oc-_gkcCiqmEIm-vKc#wYd4%lo{9v3Q`tibVG7wVRUbD004NLb4y-7D@iR+kugidP!xsFdr8e}EyY$Bp@InsT5Q$9MNkI^H$f1r*j4|5 z#l<1Bh`+*upx`9h&WeL>B2_^UDghA`#e!|pcOBf?B<&gRJs zjIa8O)&1CZ)f2`0`M{`ts=wUr0CdZV9fU^p)4;B?BBF^?*OeKr&o!q;7aB*lObVG7wVRUbD004NLb4y-7D@iRbKcgVxC@uvNth1f!B2o~nT99;8bZ}_to9m=Bgc9Nz@3{|$`vLq@6xN_SZkd2M zK_0!Io3-D%2m=Lh3Q*F6s2Yx&_n8yRUq&j!!~NjJZPtujtE4;btIsf3+qJ1|rxcbx zxK}U4_v>W<5R)t4;{+^`5LaO!V)Q|v^?`#&Tf9|=T9RdEGpk&Naf(!K0YGEShi-2U*vghd@rz=ol9y z|BUGwUa)NTQnOqPKou@nH|$vzJ^`43p3iAM;U0`#FdBh44-drHd0E32KpbVffPMfB WFj!;oXm}+60000bVG7wVRUbD004NLb4y-7D@iRq(IQDdzUWHvOkHuNV1 z;n3>Z5Y5ui5L6ef4S{Q8QIH2gHAG~dclR1Hf>chSH+}i?KD_t+0{|=UE?DybAiAxFRVp!Ay#j>t zT2AD;2LWh#Yng(_j^kz2UceW+W+Yy(Invgozx`LSvCn`TvO`ooy(h3S;AH_oDB@NE zKr+J}eS#%FaBwKG6^@KP)*fyu5X0oYDYak>+vpKw!+2iMhLe-TG{x4EWB8C(R| z@~reZjg-lK{eqr;$^(F+8P-{om(*+*PXOKk6z`T$0tEd|`mT7!T-Idx@BRy^&|c^` SbK4mJ0000bVG7wVRUbD004NLb4y-7D@iR?yB0f1Bs+Pl1mMjCSo$Et*mIQ#A*x&rV0!v7(bw^m~7)+rG1#~>KsfoL_p_GEAXNM>m4FQKfm zYXA_On_N%RGPhxwCaHr$#~J?4Hx zL7}I)+n&~Xtf$9syTsBojRZxBgX)I1cPEtH@>Z9~h8yuk<;`AD>T{iY>YR+^nOB%N zvPI&sdIEs;T+OP@T>I5ji3<89z3L?*y+kjQ1!o7K->A3#Vd{c%#E@Y?rBTP#bDlLj Z{WtAlWZufq1+D-9002ovPDHLkV1k>XyBq)j diff --git a/plugins/network/resources/wireless/spinner14/Spinner29.png b/plugins/network/resources/wireless/spinner14/Spinner29.png deleted file mode 100644 index aee02d36550dba4bc42f220655d54f40ac4f88e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmV;v0YUzWP)bVG7wVRUbD004NLb4y-7D@iR^lD$hpaTJE1-&KoDjYKH~pRe7u z(wIw25&Z)}Q{WKQ)D|?S4lNeckd@cO&wEcxMM!z`9pCdlhZoKP8^spH{hP0Kg2M6I z?6c7@M&kA3_L;L2=+JtvEVGtSO7q(_>rRoVBy?SdyJ57^s6>JNnlRA~=v0a^1bT#P z`?x6o%HwXUWgcoS;R1`rTuv43F#r0C7i80+G3m_bRT;?qr=G*AkDGwzaNT|1F^0J8 zKubuVcqp1fHyXg4ryTUTE2Zha($rs2e=@sK4_4L?mEuI1pSGwOPkD7IAYKp^K9$fH z5ZW=K1KWiI_g2<&CvT5H6o6{q966JD6dAw(Xcn5j##8;xDBY*3X?+h6_~qpW1Duy$ oS+*>60F-1cvwB%g>+e5vA7C+Wvlkw}1poj507*qoM6N<$f|O9YBLDyZ diff --git a/plugins/network/resources/wireless/spinner14/Spinner30.png b/plugins/network/resources/wireless/spinner14/Spinner30.png deleted file mode 100644 index 7ab37f3ecdeb54689d7f569138338cd0333a7319..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmV;s0Yv_ZP)bVG7wVRUbD004NLb4y-7D@iRb+z}NmcAs@Dd-u`2hVvP4)FIwQ5OzHm=1(F zS&!2a?DfY?U5i&1J}?OY{b9x|;6U0iQqP!4;0}T(B=@w5%IGH%jB+;+;Tb^NuSwIi z`QzrAZ_JE-#Z1wmX>4nJKh%5lqv>}vdPFe7P*t$-MO8{^!UkvbBEVbOXXGK-+ zKOFiN0a06{V4fKg8vr_$u1ebVG7wVRUbD004NLb4y-7D@iRh{_Rw#b*B0BKyZ@IrL>>?v9E8In9D4<89xOs+sRr{SgxQih-GE z+)@RADeixc{3ck1eFFdxX;Mf8D@zjO`#I!%t%AktP>F~(9ml!FLeS`&518u!Q#)(_ zov}+kR5V^|=7*OH$?$4n%hR7<x9i``!UI?P>kgol0>40000bVG7wVRUbD004NLb4y-7D@iR7PL12>9X?pkF+hQQ`nMl9!d7s}qJb;2!ig;|2 z66QF~sO|v3RN-ixmYIeu0KkQn&$Gwh9j+3$Hj(orrkI8?mGpmBdaJQc9ljX;vTAiN zKW~(0I}rtONRr60O3iNDUbq!ef9{S*?kQJoMLa>>Zm?dKzT8l*+6q79O#^_?#S;er zGfQbROK0swDQOKr;W?t;a{wTM4PZB#@wWdGxs<08Sj7#Kjfj|;p^K4g*B>~3KMx<; z)=xQ-ELi=?mmRE=*8HSt9AZN!)%|LvcvP=__6a9Y79|4!^#CZjL9#wBhu;)pgM)`I sgX>FrF*Ly)0S<19fR=l`8g!a#-)O{fV2YGlTmS$707*qoM6N<$f>$813IG5A diff --git a/plugins/network/resources/wireless/spinner14/Spinner33.png b/plugins/network/resources/wireless/spinner14/Spinner33.png deleted file mode 100644 index d20df2e091fd4cdba07a5e1d486e1237cd8e99db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmV;n0ZIOeP)bVG7wVRUbD004NLb4y-7D@iR!D5haO4FV{?k+g4j)w;QT{R#9W>L84|0yE#1dZ4P$hiXnPRG;j$i2wjaU=iT+{7u*oxK{{A%2P!0rQgXgn1OWgN zNAAi<$>!L$S@;b~%-IE1x1>62FE`mtu^sa;vRRRl^{az{{C%bwN*Yd9)h(&&jS|2F z;Pd2%D7bOC=ChP7|5LaRpjQxArA^tM+Te50@p5-(z7v4B6$Ajpmmb5e?d2q-ModmL gKD1xiBday{4*8d6qn$ylYXATM07*qoM6N<$g61H#2LJ#7 diff --git a/plugins/network/resources/wireless/spinner14/Spinner34.png b/plugins/network/resources/wireless/spinner14/Spinner34.png deleted file mode 100644 index d7be3789c912af5deda4f27728dfb5cc3404f76d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)bVG7wVRUbD004NLb4y-7D@iRSV4wzY;QDIf$n!am7`03=h9lQkFGhxc#~A+ok0MFqf5ux|DR!o%C`S}Bx(HjkKrBz0|Ud)kAL(@()i%ifipj^|9JZI&eu#*G%_$S zFfi~|+)Lpuz4?#3@J1poH8M8eqU7v;OoZFWz`(%pxkG6#!{7h&Sw3*g6%2baoiF&Y zDolZr^A9xzyI(VynV6R_{%2r?i8CV1{Ld&9{xqL~fw7K(fkEKUzke2jFU4FL7#La@ z7#QFG|NpP)(P8$93=E9_(KJGUcbVG7wVRUbD004NLb4y-7D@iR>%CpbvHWFcPAjC)W zA)XV4fhZBy%{REL#99|_02>oPRG2m0DK&|D;Z?U1D@D|ak<}U3_Et%|CkgaAjWB@x zc$N5}hjoEA^}VGfc7A($P@YXycTC{crz%+@>UVVtpciQx;qs-oGD7?!5I15yDPsU2Y__|O g!QX8-^I07*qoM6N<$g2yhnoB#j- diff --git a/plugins/network/resources/wireless/spinner14/Spinner36.png b/plugins/network/resources/wireless/spinner14/Spinner36.png deleted file mode 100644 index fb43e8748c67630b023a34e8c31038ecf363715a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 437 zcmV;m0ZRUfP)bVG7wVRUbD004NLb4y-7D@iR^{A_dVFE#6&dLuCa zTdd)Y1C92RvuI8mu#`F09Y*uLYM4zQOk2C7%Gs=N?i^|D;+lP3Rn|@qV*8dx!Q2H_ z0i0=tIJaJ-4_0Hc#-CGM8}n!RiQ*2!N(QY-TG_DNto71c2G31Or`fU3*?kv~-nW fomL9e>F<350bX*DR?}rB00000NkvXXu0mjfc4o0@ diff --git a/plugins/network/resources/wireless/spinner14/Spinner37.png b/plugins/network/resources/wireless/spinner14/Spinner37.png deleted file mode 100644 index 8fcb0b2b44a35382a8d27ae6d15236d404c93a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmV;p0Z0CcP)bVG7wVRUbD004NLb4y-7D@iRiA!uo7b#V@g zmj00l{0mxJEQlZ?8fs|kh5}ov!JsU?6MdhS42?=1ddBbbe1?bT0sgDz@jSU0tncN6 z@7dm*4}#IKlmHeO)OjKFw$ulcN0c)vRKY%p@9?-Dsl7HPvW&4Ea9QnZng{C2JfsVN z*sv?e@Rplu-ZU}@s5Kx$L&G*}r(d4#!8Pq{SOfra{2?M$paang`=db4JKC*iXb{Rz zj|6L-*d>5#^2O|+VRMF75_1&&3XGg*>5i`w`Bw2aluS|4v`85#TJ4F6>5f;{9bd(5 zZ+FV^rhAcL(Y9%kGA$~1PxkpajH;(&B_i5njIRqYSGQZ4E)*P(q_A=4q6Dy?PZnFI iP~2`7kUx=s?fU`0s%WFPv<0aE0000bVG7wVRUbD004NLb4y-7D@iR-#+oQQSq#so(NEob!A*&w+o-#JQv*7qZyv z%^sqC-!*{IgPNrj#|VjTXkn-px-=@Kxj;Gj18Z-EeLGvddn~cr4F=x>FCY&cP3-{a z!R1`6S+C4Ao<5e?jCZ=h6I5s3u~TR=44`|Rz_j<(M@y;eUi$&0>qZ{P18Cy3y$Be( zR{IUQqdT^9HqaR?Q1Xuf*}p=qWQ>=+w!iN4sqKCy0$?VaYo^t3LbJ`4KB*|vsvntF z!!fPqs=E`8$y7KhhvBH4y6gJaq2&2W)bVG7wVRUbD004NLb4y-7D@iRr$`RzKx>K`LwA>;q1wfz#igmO z{~%ghLTIU$mWCE}2pSR^f+(n{P>4i9DYNVRy(S?nx(j;Kuj|bVG7wVRUbD004NLb4y-7D@iRO>*(ewk5wq0>jA%$B7C{L?Y(=mTZG8d3 z2k<3q#Lim9-cAcaNF}CFP$Ytag&!;=VY9Q>LP8p0B6zA(+#ejc@E-|IqlLn`?9bQ5 zv)wwq;_WuJyPsSohU(WF+6GeqqZ`dCL+YdxhDW}WTWf5owhbzPvCWrjkwo5;{36H7 z*bsou*IK>_J0(d+tDFsn0CZYXl_bo1T}R&xiU6FhF)o1D9*O=0wW}Whl1yB-9oL4# z(sDMusPLR|p2poea2uOs(gst?jS%jA{QkN^K_-G(SsHk1uZU(H!(~vEgJ4FcZBX^A zsG!IWiamrJ@EW(7Yc|z~1^%R5mTW6#B{57r-f;-O|MnX>Phg}LPu@)c0000bVG7wVRUbD004NLb4y-7D@iRIBs68nJw2qh7AGOld?h4Lfs8!5A1T^_9^f5oC~M^0@=Lfere%aVyMXujPo znza)U)o~JKJF;iH@{)FCr4t??x-;u~5K#c&3qgEe694F-bVG7wVRUbD004NLb4y-7D@iR^&c90naTv$(_xF2hzs$fE2@=kX>&I9PA*n&s+#nGxLKOHP zv;^9};M&p_^%vCE&=j;ABm`wk1gC@MdG|C4B~o{v_05atfgwv>$y8ZH4{QDXim~GJ zTD;P@l}SD?ZaDM>PG`biH2t&MyKWotBunEN37_5T`wjrFxvE zmRJu2>rXrauXvOKK~Sy;6@>k{1t|u>fT)xu=cXkeAnIqyj@a}0@m4iI+B_M!2%w~1 z<4DFxgOYySinbOFL)R1>C_^`V|4~NtX0(;tMkWT^H?etH*JK&lS^xk507*qoM6N<$ Eg4Um;&j0`b diff --git a/plugins/network/resources/wireless/spinner14/Spinner43.png b/plugins/network/resources/wireless/spinner14/Spinner43.png deleted file mode 100644 index 211c1d4c58485b5b5fd02314434c73c5585a56c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 388 zcmV-~0ek+5P)bVG7wVRUbD004NLb4y-7D@iR^(!WXrK@i9B?`$@QCzpW#qo7B804obYyqwtj09IBu!FRB< z5$t>cTWhg1V5^mdouEOkGjM5=oVi`AK#*1Me%0*ke3)Vv9I0QX^UYfuy6z^?(}%^Q zWIL-3&VxW5s46{R={Kk*MKj8d$<%#i;5CLx+Lkdpe{BR{z4f&hMx$}KKfEID=zjqq z02|ThQ7rj;!`tOX@*+?ZceGe))|%6z2taQpaSNe77x2(6ssM#$1z1f}{1Ogjs=NXi zkF8Sh?S&`c14FwM1j&Iju?60(Ob*xVtgA1sX6*MbMC1eji$CLM%Xhtn{`8FVml&n4 iRc<~3L{*-DB7ko~pGc5tp{ce20000bVG7wVRUbD004NLb4y-7D@iR z)%W7)D{v5Tb8xVm(BdM3ilBp26~*|Jr1_tdP%+iS+m7SI?>G*kYU?aLuGns5{YW%@SqC}3?QbvFYDN$TGUA9c>WCi8%5*I7m1w~PV7zNC6G5#}0Jg?Y z1{K!;Vlkcw-kehf_658o@ZV)LH?y`|HX&zNYWv9T`1M%dUd|NbSzuL%!Nr{IKF)W( uti(zLC?Q=s^|sK^VOBR}uj2JwMZr%6*IE6w*f*j80000{R zy8QpY`^|mDr;Pt6c>k{Z-~4cWKhM=2CPqdE1_m0E|EK>x{r9yT^Wp!jO7S<1&(BN! z)9cO56%h2lKFag?|7UG&|9x6Qof{YZsxMXj`v3pbtN+*q)^;{FHg?WzbnFMx53QLG z3r;fm_xt#PQwM{;9E%(N)7g=?{MWpX>gBf%!52qTI6N jALrkm`0F}gTe~DWM4fhNY`Q diff --git a/plugins/network/resources/wireless/spinner14/Spinner46.png b/plugins/network/resources/wireless/spinner14/Spinner46.png deleted file mode 100644 index fc681afa03e86b80b2679cdc58f3b7cb567f481f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCeg#>gnPbqA_vm z*}Y!Oi2|(;zu#Wdspb;c65>|YsuRH>#KLX*uVLv8jT<+gFzspHq7)Iq!tEW+{gF+F zg;n~X*F`S@9VW%J*jVSj-X^C-b<1ZZK6~iU{$;%_&(m*Nm+x&Xn){C7-1pQaBK}XO zADZlP$!2Hs%Hp6mCC%@yPncgFZGK7d{kvXi)zc4a|7!WAzT4%<@Tc%>#pJiYUc7mo zw{gY1`1$n*9H!SficjsDvwy$+V^*#|4pQ0~U+;4i2pKR69Goed)0w^CSB3XkHl_`C zq${-#pNcYNI^y?wg=FjRYXTutw``n|nRhF}AgTe~DWM4fn8Ta6 diff --git a/plugins/network/resources/wireless/spinner14/Spinner47.png b/plugins/network/resources/wireless/spinner14/Spinner47.png deleted file mode 100644 index 267ed5c9c789484e4e176d2ca92b06fd257a9979..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ|?(bL5-L}TLK z-o0MTjv{X7&!ioc^?j@#C1Jighs9Bai%W=iTN4MDSyL;AUEeo57q5*Qy%&brIdJK2 zG3k~{OkcOwL&>^#`R+UK3l{Jj?@n^_w|YHw+L|xFnP1F5{^nVA?YfVpzW2_4c@kjV zQPB}?^mVz#evRX|+RP7>+~_{{#(Q5*waQ%EuU0F(_9*mbX;lVI_U2QSu=wL^I(7FF zwOkFosah+K9MI~k4cJz|tI`o{$)H*3u_5)|wOMM_cOGbd`nY9U0JHburyF-oxA-S{ zm-+m;oyGEk4Y`+Xb7!4-+mqtn+RdzT~vqJKcoGkCiC KxvXHmY1bXJJaMVvPfZ(_NJzU%~KaF@>Sq!YMnZD>b<7vN)_sH4pQ9O+!q@j zu9WYWywG6KXLCCaFhKiX8sB2a|TaWKbLh* G2~7Yq7n2tN diff --git a/plugins/network/resources/wireless/spinner14/Spinner49.png b/plugins/network/resources/wireless/spinner14/Spinner49.png deleted file mode 100644 index 1f74cf5d339558cf03233edd3473ac4a5d95d99f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{X($mE;L}TLH zbB5fEg%Za<-v7M+v4x>lcgdx@3Yu@qXJ5@SuU6i}ZoRni>;jSQso@C%KbKFw^IvZE z67Rh4cjx`8eWmCUQe@eBeC@iDu*c2F&zJsK7hz_u+x}c-YKm|4%90J|ws5Ow zAN%XSVt+vEZU(o6H#gk`ILfWrU) diff --git a/plugins/network/resources/wireless/spinner14/Spinner51.png b/plugins/network/resources/wireless/spinner14/Spinner51.png deleted file mode 100644 index 86cbe0e002b6345c7221f023a159437e98ac3228..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ|C!PCVtL}Oxd z$^oV;SO0(h_viG2vj;%naKYn)tjG9YWJyf4{1zkcJ5xeJI#_!XnwR75i^m6xIHFeB^88Hp9d9VLaQd-=qiL`e+~c_e6c1NTK?? s^9%Xr%nxrh`jdX_+4DdHE&~RJsq7}K$M<&i1KrNx>FVdQ&MBb@0Q?DgZU6uP diff --git a/plugins/network/resources/wireless/spinner14/Spinner52.png b/plugins/network/resources/wireless/spinner14/Spinner52.png deleted file mode 100644 index c80d234fdaee46d57ee117c7cbffb23e2c28e446..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ|C+SA1`L}Oxd z$^j-FNjt8Mg@zjT6Q5N7|Ezv^x4OT?{e`O&U7lGK)S4zH{J4JX#DNEA4jee}C1Td^ z|M70e{`dIsR7!(*8t1WsM}O4Lp7`)yLYTSvh<)3CNuQpcU;qCZtui(= zOff3>C;ad1xBqiu-hH>w;rny`#fiU1@6LE=uf3~h(+Sl iU*B=lu|R_iMux9Tjb)0x+IIt8%;4$j=d#Wzp$Pz-X>-K@ diff --git a/plugins/network/resources/wireless/spinner14/Spinner54.png b/plugins/network/resources/wireless/spinner14/Spinner54.png deleted file mode 100644 index 5b91414712f49ea39451c8f063a0937175c7dd8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ`s+tbA{L}Oxd z!U0AZiEo>46xW(;P5GhG;yaIXx|^DwvA-JIvS67QpY^gk_rEE5@+-k-%CXw}JGL1Z z8oe?$_;Wtx$N%_Odj-D7rEdLSxZ_GP>q4IYGpAnp=N}mK|G#_S+x@zpvm_<{8EZ@Z zwbOb3<+TPg5GZR#iAw!rF_>w%KK=K}1s#|BZyaD|d#3B-!^0@Z$kXp}(VQ!TkHJh{ WZNYNM3|^o!89ZJ6T-G@yGywo3FMGaqA@W! zVS#ADv%hIC4}7iMYkS>2IHgd{N$UUK|Gzss8y#nMHojaT{C&C0q#V<ev6vB_)8s^WvICU+@3dzrCNg{{O$QG)33P{5SpE zBbzHFX4r3*o}8l0e7N52=vyA&|1%_>OZy8A=4!SzKu0lny85}Sb4q9e E0NXBPQ2+n{ diff --git a/plugins/network/resources/wireless/spinner14/Spinner56.png b/plugins/network/resources/wireless/spinner14/Spinner56.png deleted file mode 100644 index e82720c5d3b03c071306a2e3f02d871f74f9d5d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{1?djqeqA@W! zL1N2+na_*2F@K+)Au+!*qWAwl<5R}}{_npq^YLU|Pbt@ZMd3yUf9yZ^cP{L21cHeo z&!af%zWzCKe&1Ji@y$%!no{zeMRT7eq$H&LI-TG*>Dc}{p8Nkd|Nr~{J0CN%r_|1~ p_cj}R;+~hhDP@OK*FHgZhN*!HR^NLM*aDrw;OXk;vd$@?2>`qjT{Zv! diff --git a/plugins/network/resources/wireless/spinner14/Spinner57.png b/plugins/network/resources/wireless/spinner14/Spinner57.png deleted file mode 100644 index 6a383a129c56155fddd130d1a38a073a86a35710..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{1@9E+gqA~IA zxr1Defg-IB>*s4bJ)6`yahGay^s{F?wo}4C3I(;zdpPZkYN>%`b!D4v(7&J8qdv^P zx?=at42B6x1vY1XUsskteBp`u!mGQ!&nZ{h5Hd&g@DU}J_nR+T*K2rIyvWLnsCpY} vn77dN{>2E->t&}^A2HngvY<}j?=JmnW%Zrmn)^F|PGRtL^>bP0l+XkK@SR_J diff --git a/plugins/network/resources/wireless/spinner14/Spinner58.png b/plugins/network/resources/wireless/spinner14/Spinner58.png deleted file mode 100644 index 60a39cbb9abf10d971b0ca388688e52137bddd67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{1?CIhdqA@W! zL4x%Pv)-QjIa?(DZ8n^|=%oJ>`}h6v_W8w||Li*A(sk_q|9gf;1_lOye*f?9Rq5rw zX<=&jag)&ogN=6-T;-dSPW(T5>ehdGLxVr*Dp8Y9ZTr8d%lhB{srkPqyG+XE0RpMp g|FtKq>C9qaP}Wq~W~+8|1<-m1Pgg&ebxsLQ08jK+ZU6uP diff --git a/plugins/network/resources/wireless/spinner14/Spinner59.png b/plugins/network/resources/wireless/spinner14/Spinner59.png deleted file mode 100644 index bed30374e025acf72133ff71decdee2e504e5869..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{%?&;zfqA@W! zL4viJ!(h@PizyH7KS$5YU#SznL(F*MqK~%k%TNFR|IhdT(XYOfReJ4b{$FljU|=Ko z_gLw?3}3FR^^c~0`TyT|;vZ4(u2h~b>wo(L^L|**ZhUC(`S8$!4gdBtoSe0Rk>Q?- VqH^_7+cKb)44$rjF6*2UngIP2Qq2GW diff --git a/plugins/network/resources/wireless/spinner14/Spinner60.png b/plugins/network/resources/wireless/spinner14/Spinner60.png deleted file mode 100644 index 24ea1db8af70c63cfce35bf93b384cba368e5874..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ`M<>}%WqA@W! zL4tL0L&Sq4KbIb!`MlVS83=?o&dT|@@5rC@Kk?tb-~T_~<@S<2Z~m*O-v0kT=f{4( zX{{L_MS3K!L!iFRbn@i diff --git a/plugins/network/resources/wireless/spinner14/Spinner61.png b/plugins/network/resources/wireless/spinner14/Spinner61.png deleted file mode 100644 index 1647134aa56420cc93dab34c59e9724cdf71dcb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ`M+0jJ3hHzc5`LWb*djc2``>NXihrN))#GDW@K55*LH{>aK+_pKUHx3vIVCg!03^6e AlmGw# diff --git a/plugins/network/resources/wireless/spinner14/Spinner62.png b/plugins/network/resources/wireless/spinner14/Spinner62.png deleted file mode 100644 index 09f6020d774fee77a439de17f2deef511a0d7c47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ`MgTe~DWM4fuBb`n diff --git a/plugins/network/resources/wireless/spinner14/Spinner63.png b/plugins/network/resources/wireless/spinner14/Spinner63.png deleted file mode 100644 index 7809e944638490053b9e73063ec643b77e6543f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H>FMGaqA@W! zL4tL00tfR^+5g2M&;HkEAOHPxuk!cltT(P~NDxj*O1N?G$CSqAm-5QohyUB}-nf#H ZVZu?qjHW|jSwKS=JYD@<);T3K0RV=WIz9jZ diff --git a/plugins/network/resources/wireless/spinner14/Spinner64.png b/plugins/network/resources/wireless/spinner14/Spinner64.png deleted file mode 100644 index 8b177d7c3b4cc61fbb9c7faa78327a1fcc67a9af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ|y>gnPbqA@W! zL4tL0LPF!CWB(s%asSg64m#eVc<9)LBVV4~mt|jfe*GPbecF#MooLci_%eIphyR=8 lXG{M3AN=#r@O1TaS?83{1OWa`LA3w? diff --git a/plugins/network/resources/wireless/spinner14/Spinner65.png b/plugins/network/resources/wireless/spinner14/Spinner65.png deleted file mode 100644 index c67300ce361105e227a0039623b9038453f7ee63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H?djqeqA@W! zL4tL0!h?oS+x}-t8UOPudQ_qB@1ZMf^!$H)+xa=||K0wlr$l;eTARo7f2VAPeWySW aJ42x@zw5Qfzfyt5FnGH9xvX}%WqA@W! zL4tL0gVKT>U-$3%wC%s&kyYtUh7vO+nj+-?-hO=It7fl@^?zfl5A}ZK5C5h)FLJxY Zz;H2>=bErx(+;3144$rjF6*2UngHbxI@16E diff --git a/plugins/network/resources/wireless/spinner14/Spinner67.png b/plugins/network/resources/wireless/spinner14/Spinner67.png deleted file mode 100644 index 3226774a40fd639922b5a93bdc744a1f9ed6307d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H<>}%WqA@W! zL4tL0Lt|s3W8LL?*PtuLh6V-(8aaPc51ctzaQ(>VXpYWrf74Bh|6hA~;HTvrm);T< ZhFA97hH^Y#UI9&E@O1TaS?83{1OR*YIhX(d diff --git a/plugins/network/resources/wireless/spinner14/Spinner68.png b/plugins/network/resources/wireless/spinner14/Spinner68.png deleted file mode 100644 index 51cdf72c547ea2e67c6ed61d48cc4ed85a517c44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H>gnPbqA@W! zL4x%#yUCmM%pd>fcc#>yvi_GJ68kINPP1x;1Q1x1|BX^J`g+}cQm%{?14GRd-nD9B SSDJtZFnGH9xvXSgeB^>bP0l+XkKRxmVW diff --git a/plugins/network/resources/wireless/spinner14/Spinner70.png b/plugins/network/resources/wireless/spinner14/Spinner70.png deleted file mode 100644 index d7b6d59f8c4203488ba57cffc1cd576a23668c13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H=;`7ZqA@W! zL4viJ^F;2?)HPfF{?D8l`rp#?;_*Y3bHB<8pT2+l)$SSpZ5K{`?Iy**5cZVkOzopr0QX-wkpKVy diff --git a/plugins/network/resources/wireless/spinner14/Spinner71.png b/plugins/network/resources/wireless/spinner14/Spinner71.png deleted file mode 100644 index fb4d8abf1b1257a73509674aeabcd25fc4b3de31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H=;`7ZqA@W! zL4wtULF@KEX|3G<`==#dtxpU3VrW>O@Zz>% diff --git a/plugins/network/resources/wireless/spinner14/Spinner74.png b/plugins/network/resources/wireless/spinner14/Spinner74.png deleted file mode 100644 index d27ef9b6666c1859672f8d3dc5f23d5d983779a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H<>}%WqA@W! zK_cov#pQav$HxC7JueFVdQ&MBb@01Rh4mH+?% diff --git a/plugins/network/resources/wireless/spinner14/Spinner75.png b/plugins/network/resources/wireless/spinner14/Spinner75.png deleted file mode 100644 index 6c2dbe6201a019ddb6846e7a8f9f4a11dffeddc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{{gCoXE|?EE|V)H_Mm!;%aPERn1=7Zmn_tYYwV^>bP0l+XkKSH~=o diff --git a/plugins/network/resources/wireless/spinner14/Spinner76.png b/plugins/network/resources/wireless/spinner14/Spinner76.png deleted file mode 100644 index 8682155198f491eb964c986f311034679f18d1a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H>FMGaqA@W! zLBe3chOg5b5B>Wub7WO|QUVZU+&F*e#F45g4}ZtkPs$Cs{U?6c!~gYalT7=XCUP=_ Xa`3EMvo+ThXb6L+tDnm{r-UW|0RTJm diff --git a/plugins/network/resources/wireless/spinner14/Spinner77.png b/plugins/network/resources/wireless/spinner14/Spinner77.png deleted file mode 100644 index d28437d8acffec00a28f06e8b44271dac8f18d47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{{=IP=XqA@W! zLBe3cmap|29)0_N_QKhA$>R$C{{36G!p;- diff --git a/plugins/network/resources/wireless/spinner14/Spinner79.png b/plugins/network/resources/wireless/spinner14/Spinner79.png deleted file mode 100644 index cb455ae5d55f4ca95c107fc6a6c563c217cbfbcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H;OXKRqA@W! zVF6pfosaSHg`f3}ldf!9@Zq0vis7aWMTQ0jM}%WqA@W! zVS!k{y?^!FF7^GFY`L;=0r#Ke1dD?Q4it1}=}EFKZm?otkp96QrOo#`5U7j6)78&q Iol`;+02UE2mjD0& diff --git a/plugins/network/resources/wireless/spinner14/Spinner82.png b/plugins/network/resources/wireless/spinner14/Spinner82.png deleted file mode 100644 index fd699d944b463f28613b96277b65e4249a82d661..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{{<>}%WqA@W! zVS!k{y?^#jnZN&Aw_Gt?$ZhaH(c;hl|M$68?MxBrVS2^D;918d`zPo!$Z7^pS3j3^ HP6}%WqA@W! z;Q-T-@_)~dsrB*9xWF2+?eFu)|IU91D|}raKFQ?X$D}_;4jp*#`M36AL8onfO@R*X a3=H!{dA^*L+Yt>kg~8L+&t;ucLK6Ui|2?<> diff --git a/plugins/network/resources/wireless/spinner14/Spinner84.png b/plugins/network/resources/wireless/spinner14/Spinner84.png deleted file mode 100644 index f2e5cb9904b616be6983357c84d32dad1f727ca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H?&;zfqA@W! z;Q-T=u)oj6@Bf@HJzIvyAW`&bdc@JM{R{c$yNTsA)z=%P82nBD(dPeHLxQ!0jp5N{ WuK4ZAvWJ02FnGH9xvXgnPbqA@W! z;Q*7!xBt&4-1^`vHd}_rAW=Bw&$$U_4<4+Xk<#l_FR|?Z-=hyY{2yybu$HhfteVF8 UWUe0Dbf5tYp00i_>zopr0G7r#LjV8( diff --git a/plugins/network/resources/wireless/spinner14/Spinner86.png b/plugins/network/resources/wireless/spinner14/Spinner86.png deleted file mode 100644 index d2adfe55162db891621f377afc4a9ca865bf66a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H>gnPbqA@W! z;Q-e^<5h2dtnZEGW16vnQ!6Lc;P>$p1+JNw>n&?$ZM?nX?S7-qS#Ae47N{~XI4t41 UVzkuuFVFx6Pgg&ebxsLQ0D~PjGXMYp diff --git a/plugins/network/resources/wireless/spinner14/Spinner87.png b/plugins/network/resources/wireless/spinner14/Spinner87.png deleted file mode 100644 index f2da2085b529fc408c2e19cfe14176934024ca82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H>FMGaqA@W! z;Q-^5?SHNt+I^lcI^9Ot%<-e^|DFFg8_lWyKI@?HbhkMUS%=MUw*CLVQObtP?I2L6 XJrkeI>(f2CKqiBytDnm{r-UW|c&j*o diff --git a/plugins/network/resources/wireless/spinner14/Spinner88.png b/plugins/network/resources/wireless/spinner14/Spinner88.png deleted file mode 100644 index 4b39241815d7e4aae54158ce12ab6f9ea229aae7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H?&;zfqA@W! z;Q-^5ZU4f9@Bf%DKHWxGuk*hTkM;izMoS(~N-w?44$rjF6*2UngEEzHt+xd diff --git a/plugins/network/resources/wireless/spinner14/Spinner90.png b/plugins/network/resources/wireless/spinner14/Spinner90.png deleted file mode 100644 index 814b87468214afdf00379d417a99d13447cdeccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa&H|6fVj#^3!i*M5UmSo8m8y`4 z66d1S#FG3X28N0`#Xcwfy+R9ov^{l$3Vgl2ef2ci7#yqE&OJX{oCZ{H;pyTSqA@W! z;Q-?jvzp1FH-5!4O}F9JbP0l+XkKedRRW diff --git a/plugins/network/resources/wireless/wireless-0-symbolic-dark.svg b/plugins/network/resources/wireless/wireless-0-symbolic-dark.svg deleted file mode 100644 index d5babcbee..000000000 --- a/plugins/network/resources/wireless/wireless-0-symbolic-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/wireless-0-symbolic.svg b/plugins/network/resources/wireless/wireless-0-symbolic.svg deleted file mode 100644 index e6bebf631..000000000 --- a/plugins/network/resources/wireless/wireless-0-symbolic.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/wireless-20-symbolic-dark.svg b/plugins/network/resources/wireless/wireless-20-symbolic-dark.svg deleted file mode 100644 index 5ffe56aab..000000000 --- a/plugins/network/resources/wireless/wireless-20-symbolic-dark.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/plugins/network/resources/wireless/wireless-20-symbolic.svg b/plugins/network/resources/wireless/wireless-20-symbolic.svg deleted file mode 100644 index 3d4a6e780..000000000 --- a/plugins/network/resources/wireless/wireless-20-symbolic.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/plugins/network/resources/wireless/wireless-40-symbolic-dark.svg b/plugins/network/resources/wireless/wireless-40-symbolic-dark.svg deleted file mode 100644 index d6f6c012e..000000000 --- a/plugins/network/resources/wireless/wireless-40-symbolic-dark.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/plugins/network/resources/wireless/wireless-40-symbolic.svg b/plugins/network/resources/wireless/wireless-40-symbolic.svg deleted file mode 100644 index 30669f645..000000000 --- a/plugins/network/resources/wireless/wireless-40-symbolic.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/plugins/network/resources/wireless/wireless-60-symbolic-dark.svg b/plugins/network/resources/wireless/wireless-60-symbolic-dark.svg deleted file mode 100644 index 2b3dc7c92..000000000 --- a/plugins/network/resources/wireless/wireless-60-symbolic-dark.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/plugins/network/resources/wireless/wireless-60-symbolic.svg b/plugins/network/resources/wireless/wireless-60-symbolic.svg deleted file mode 100644 index 0985e6a04..000000000 --- a/plugins/network/resources/wireless/wireless-60-symbolic.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/plugins/network/resources/wireless/wireless-80-symbolic-dark.svg b/plugins/network/resources/wireless/wireless-80-symbolic-dark.svg deleted file mode 100644 index 20bcbc2fc..000000000 --- a/plugins/network/resources/wireless/wireless-80-symbolic-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/wireless-80-symbolic.svg b/plugins/network/resources/wireless/wireless-80-symbolic.svg deleted file mode 100644 index 137e21c9f..000000000 --- a/plugins/network/resources/wireless/wireless-80-symbolic.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/wireless-background.svg b/plugins/network/resources/wireless/wireless-background.svg deleted file mode 100644 index ba17ed434..000000000 --- a/plugins/network/resources/wireless/wireless-background.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - wireless-background-48px - Created with Sketch. - - - - - - - - - - - - - \ No newline at end of file diff --git a/plugins/network/resources/wireless/wireless-disabled-symbolic-dark.svg b/plugins/network/resources/wireless/wireless-disabled-symbolic-dark.svg deleted file mode 100644 index cf5fdd82a..000000000 --- a/plugins/network/resources/wireless/wireless-disabled-symbolic-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/wireless-disabled-symbolic.svg b/plugins/network/resources/wireless/wireless-disabled-symbolic.svg deleted file mode 100644 index 670c64c78..000000000 --- a/plugins/network/resources/wireless/wireless-disabled-symbolic.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/plugins/network/resources/wireless/wireless-disconnect-symbolic.svg b/plugins/network/resources/wireless/wireless-disconnect-symbolic.svg deleted file mode 100644 index 5a5a0ff5f..000000000 --- a/plugins/network/resources/wireless/wireless-disconnect-symbolic.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/plugins/network/resources/wireless/wireless-disconnect.svg b/plugins/network/resources/wireless/wireless-disconnect.svg deleted file mode 100644 index 724b3902a..000000000 --- a/plugins/network/resources/wireless/wireless-disconnect.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - wireless-disconnect - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/plugins/tray/CMakeLists.txt b/plugins/tray/CMakeLists.txt index ea822d201..55a68ee01 100644 --- a/plugins/tray/CMakeLists.txt +++ b/plugins/tray/CMakeLists.txt @@ -26,7 +26,6 @@ find_package(DtkWidget REQUIRED) find_package(dbusmenu-qt5 REQUIRED) pkg_check_modules(XCB_LIBS REQUIRED xcb-ewmh xcb xcb-image xcb-composite xtst x11 xext xcb-icccm dbusmenu-qt5) -pkg_check_modules(DDE-Network-Utils REQUIRED dde-network-utils) pkg_check_modules(DFrameworkDBus REQUIRED dframeworkdbus) pkg_check_modules(QGSettings REQUIRED gsettings-qt) @@ -37,7 +36,6 @@ target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS} ${Qt5Gui_PRIVATE_INCLUDE_DIRS} ${XCB_LIBS_INCLUDE_DIRS} - ${DDE-Network-Utils_INCLUDE_DIRS} ${DFrameworkDBus_INCLUDE_DIRS} ${QGSettings_INCLUDE_DIRS} ${dbusmenu-qt5_INCLUDE_DIRS} @@ -51,7 +49,6 @@ target_link_libraries(${PLUGIN_NAME} PRIVATE ${Qt5Svg_LIBRARIES} ${Qt5Concurrent_LIBRARIES} ${XCB_LIBS_LIBRARIES} - ${DDE-Network-Utils_LIBRARIES} ${DFrameworkDBus_LIBRARIES} ${QGSettings_LIBRARIES} pthread