Network/IRC/IrcNetworkManager.py

changeset 2243
c0323a43d966
parent 2241
030924019d88
child 2246
fdf22a29fbf4
--- a/Network/IRC/IrcNetworkManager.py	Sun Dec 02 15:54:15 2012 +0100
+++ b/Network/IRC/IrcNetworkManager.py	Sun Dec 02 18:52:03 2012 +0100
@@ -24,6 +24,7 @@
     DefaultIdentityName = "0default"
     DefaultIdentityDisplay = QCoreApplication.translate("IrcIdentity", "Default Identity")
     
+    DefaultAwayMessage = QCoreApplication.translate("IrcIdentity", "Gone away for now.")
     DefaultQuitMessage = QCoreApplication.translate("IrcIdentity", "IRC for eric5 IDE")
     DefaultPartMessage = QCoreApplication.translate("IrcIdentity", "IRC for eric5 IDE")
     
@@ -42,7 +43,11 @@
         self.__password = ""
         self.__ident = Utilities.getUserName()
         
-        # TODO: add AWAY handling
+        self.__rememberPosOnAway = True
+        self.__awayMessage = IrcIdentity.DefaultAwayMessage
+        self.__autoAway = False
+        self.__autoAwayTimeout = 1
+        self.__autoReturn = False
         
         self.__quitMessage = IrcIdentity.DefaultQuitMessage
         self.__partMessage = IrcIdentity.DefaultPartMessage
@@ -61,6 +66,11 @@
         settings.setValue("Password", self.__password)
         settings.setValue("QuitMessage", self.__quitMessage)
         settings.setValue("PartMessage", self.__partMessage)
+        settings.setValue("RememberAwayPosition", self.__rememberPosOnAway)
+        settings.setValue("AwayMessage", self.__awayMessage)
+        settings.setValue("AutoAway", self.__autoAway)
+        settings.setValue("AwayTimeout", self.__autoAwayTimeout)
+        settings.setValue("AutoReturn", self.__autoReturn)
     
     def load(self, settings):
         """
@@ -75,6 +85,12 @@
         self.__password = settings.value("Password", "")
         self.__quitMessage = settings.value("QuitMessage", IrcIdentity.DefaultQuitMessage)
         self.__partMessage = settings.value("PartMessage", IrcIdentity.DefaultPartMessage)
+        self.__rememberPosOnAway = Preferences.toBool(
+            settings.value("RememberAwayPosition", True))
+        self.__awayMessage = settings.value("AwayMessage", IrcIdentity.DefaultAwayMessage)
+        self.__autoAway = Preferences.toBool(settings.value("AutoAway", False))
+        self.__autoAwayTimeout = int(settings.value("AwayTimeout", 1))
+        self.__autoReturn = Preferences.toBool(settings.value("AutoReturn", False))
     
     def setName(self, name):
         """
@@ -210,6 +226,89 @@
         """
         return self.__partMessage
     
+    def setRememberAwayPosition(self, remember):
+        """
+        Public method to set to remember the chat position upon AWAY.
+        
+        @param remember flag indicating to remember the chat position (boolean)
+        """
+        self.__rememberPosOnAway = remember
+    
+    def rememberAwayPosition(self):
+        """
+        Public method to get a flag indicating to remember the chat position upon AWAY.
+        
+        @return flag indicating to remember the chat position (boolean)
+        """
+        return self.__rememberPosOnAway
+    
+    def setAwayMessage(self, message):
+        """
+        Public method to set the AWAY message.
+        
+        @param message AWAY message (string)
+        """
+        if message:
+            self.__awayMessage = message
+        else:
+            self.__awayMessage = IrcIdentity.DefaultAwayMessage
+    
+    def getAwayMessage(self):
+        """
+        Public method to get the AWAY message.
+        
+        @return AWAY message (string)
+        """
+        return self.__awayMessage
+    
+    def setAutoAway(self, on):
+        """
+        Public method to set the auto away function.
+        
+        @param on flag indicating to enable the auto away function (boolean)
+        """
+        self.__autoAway = on
+    
+    def autoAway(self):
+        """
+        Public method to get the auto away flag.
+        
+        @return auto away flag (boolean)
+        """
+        return self.__autoAway
+    
+    def setAutoAwayTimeout(self, minutes):
+        """
+        Public method to set the auto away timeout.
+        
+        @param minutes auto away timeout in minutes (integer)
+        """
+        self.__autoAwayTimeout = minutes
+    
+    def getAutoAwayTimeout(self):
+        """
+        Public method to get the auto away timeout.
+        
+        @return auto away timeout in minutes (integer)
+        """
+        return self.__autoAwayTimeout
+    
+    def setAutoReturn(self, on):
+        """
+        Public method to set the auto return function.
+        
+        @param on flag indicating to enable the auto return function (boolean)
+        """
+        self.__autoReturn = on
+    
+    def autoReturn(self):
+        """
+        Public method to get the auto return flag.
+        
+        @return auto return flag (boolean)
+        """
+        return self.__autoReturn
+    
     @classmethod
     def createDefaultIdentity(cls):
         """

eric ide

mercurial