E5Network/E5NetworkIcon.py

changeset 4630
7b0e38956b5c
parent 4629
99aaac59be4f
child 4631
5c1a96925da4
diff -r 99aaac59be4f -r 7b0e38956b5c E5Network/E5NetworkIcon.py
--- a/E5Network/E5NetworkIcon.py	Tue Dec 29 15:13:23 2015 +0100
+++ b/E5Network/E5NetworkIcon.py	Tue Dec 29 18:59:46 2015 +0100
@@ -9,7 +9,7 @@
 
 from __future__ import unicode_literals
 
-from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtCore import pyqtSlot, pyqtSignal
 from PyQt5.QtNetwork import QNetworkConfigurationManager
 
 from E5Gui.E5ClickableLabel import E5ClickableLabel
@@ -20,7 +20,12 @@
 class E5NetworkIcon(E5ClickableLabel):
     """
     Class implementing a statusbar icon tracking the network status.
+    
+    @signal onlineStateChanged(online) emitted to indicate a change of the
+        network state
     """
+    onlineStateChanged = pyqtSignal(bool)
+    
     def __init__(self, parent=None):
         """
         Constructor
@@ -31,7 +36,8 @@
         super(E5NetworkIcon, self).__init__(parent)
         
         self.__networkManager = QNetworkConfigurationManager(self)
-        self.__onlineStateChanged(self.__networkManager.isOnline())
+        self.__online = self.__networkManager.isOnline()
+        self.__onlineStateChanged(self.__online)
         
         self.__networkManager.onlineStateChanged.connect(
             self.__onlineStateChanged)
@@ -58,6 +64,10 @@
             tooltip = tooltip.format(self.tr("Offline"))
         
         self.setToolTip(tooltip)
+        
+        if online != self.__online:
+            self.__online = online
+            self.onlineStateChanged.emit(online)
     
     def isOnline(self):
         """

eric ide

mercurial