Network/IRC/IrcNetworkManager.py

changeset 2237
baddb671c326
parent 2236
e30d5f978919
child 2238
9977d3081ab6
--- a/Network/IRC/IrcNetworkManager.py	Thu Nov 29 20:02:43 2012 +0100
+++ b/Network/IRC/IrcNetworkManager.py	Fri Nov 30 20:14:50 2012 +0100
@@ -55,7 +55,7 @@
         @param settings reference to the settings object (QSettings)
         """
         self.__realName = settings.value("RealName", "")
-        self.__nickNames = Preferences.toList(settings.value("NickNames"), [])
+        self.__nickNames = Preferences.toList(settings.value("NickNames", []))
         self.__serviceName = settings.value("ServiceName", "")
         self.__password = settings.value("Password", "")
     
@@ -184,7 +184,7 @@
         
         @param settings reference to the settings object (QSettings)
         """
-        # no need to save the server name because that is the group key
+        settings.setValue("Name", self.__server)
         settings.setValue("Port", self.__port)
         settings.setValue("SSL", self.__ssl)
         settings.setValue("Password", self.__password)
@@ -195,6 +195,7 @@
         
         @param settings reference to the settings object (QSettings)
         """
+        self.__server = settings.value("Name", "")
         self.__port = int(settings.value("Port", IrcServer.DefaultPort))
         self.__ssl = Preferences.toBool(settings.value("SSL", False))
         self.__password = settings.value("Password", "")
@@ -207,6 +208,14 @@
         """
         return self.__server
     
+    def setName(self, name):
+        """
+        Public method to set the server name.
+        
+        @param name server name (string)
+        """
+        self.__server = name
+    
     def getPort(self):
         """
         Public method to get the server port number.
@@ -289,7 +298,7 @@
         @param settings reference to the settings object (QSettings)
         """
         self.__key = settings.value("Key", "")
-        self.__autoJoin = Preferences.toBool(settings.value("AutoJoin"), False)
+        self.__autoJoin = Preferences.toBool(settings.value("AutoJoin", False))
     
     def getName(self):
         """
@@ -348,8 +357,9 @@
         
         self.__name = name
         self.__identity = ""
-        self.__servers = {}
+        self.__server = None
         self.__channels = {}
+        self.__autoConnect = False
     
     def save(self, settings):
         """
@@ -359,12 +369,10 @@
         """
         # no need to save the network name because that is the group key
         settings.setValue("Identity", self.__identity)
+        settings.setValue("AutoConnect", self.__autoConnect)
         
-        settings.beginGroup("Servers")
-        for key in self.__servers:
-            settings.beginGroup(key)
-            self.__servers[key].save(settings)
-            settings.endGroup()
+        settings.beginGroup("Server")
+        self.__server.save(settings)
         settings.endGroup()
         
         settings.beginGroup("Channels")
@@ -381,17 +389,15 @@
         @param settings reference to the settings object (QSettings)
         """
         self.__identity = settings.value("Identity", "")
+        self.__autoConnect = Preferences.toBool(settings.value("AutoConnect", False))
         
-        settings.beginGroup("Servers")
-        for key in settings.childKeys():
-            self.__servers[key] = IrcServer(key)
-            settings.beginGroup(key)
-            self.__servers[key].load(settings)
-            settings.endGroup()
+        settings.beginGroup("Server")
+        self.__server = IrcServer("")
+        self.__server.load(settings)
         settings.endGroup()
         
         settings.beginGroup("Channels")
-        for key in self.__channels:
+        for key in settings.childGroups():
             self.__channels[key] = IrcChannel(key)
             settings.beginGroup(key)
             self.__channels[key].load(settings)
@@ -422,63 +428,32 @@
         """
         return self.__identity
     
-    def setServers(self, servers):
-        """
-        Public method to set the list of servers.
-        
-        @param servers list of servers for the network (list of IrcServer)
+    def getServerName(self):
         """
-        self.__servers = {}
-        for server in servers:
-            self.__servers[server.getName()] = server
-    
-    def getServers(self):
-        """
-        Public method to get the servers.
+        Public method to get the server name.
         
-        @return list of servers for the network (list of IrcServer)
+        @return server name (string)
         """
-        return list(self.__servers.values())
+        if self.__server:
+            return self.__server.getName()
+        else:
+            return ""
     
-    def getServerNames(self):
-        """
-        Public method to get a list of all known server names.
-        
-        @return list of server names (list of string)
+    def getServer(self):
         """
-        return list(sorted(self.__servers.keys()))
-    
-    def getServer(self, name):
-        """
-        Public method to get a server object.
+        Public method to get the server object.
         
-        @param name name of the server to get (string)
         @return reference to the server (IrcServer)
         """
-        if name in self.__servers:
-            return self.__servers[name]
-        else:
-            return None
+        return self.__server
     
     def setServer(self, server):
         """
-        Public method to set a server.
+        Public method to set the server.
         
         @param server server object to set (IrcServer)
         """
-        serverName = server.getName()
-        if serverName in self.__servers:
-            self.__servers[serverName] = server
-    
-    def addServer(self, server):
-        """
-        Public method to add a server.
-        
-        @param server server object to add (IrcServer)
-        """
-        serverName = server.getName()
-        if serverName not in self.__servers:
-            self.__servers[serverName] = server
+        self.__server = server
     
     def setChannels(self, channels):
         """
@@ -547,6 +522,22 @@
         if channelName in self.__channels:
             del self.__channels[channelName]
     
+    def setAutoConnect(self, enable):
+        """
+        Public method to set the auto connect flag.
+        
+        @param enable flag indicate to connect to the network at start-up.
+        """
+        self.__autoConnect = enable
+    
+    def autoConnect(self):
+        """
+        Public method to check, if the network should be connected to at start-up.
+        
+        @return flag indicating an auto connect (boolean)
+        """
+        return self.__autoConnect
+    
     @classmethod
     def createDefaultNetwork(cls):
         """
@@ -563,13 +554,16 @@
         serverName = "chat.freenode.net"
         server = IrcServer(serverName)
         server.setPort(8001)
-        network.addServer(server)
+        network.setServer(server)
         
         # channel
         channel = IrcChannel("#eric-ide")
         channel.setAutoJoin(False)
         network.addChannel(channel)
         
+        # auto connect
+        network.setAutoConnect(False)
+        
         return network
 
 
@@ -647,7 +641,7 @@
         
         # identities
         self.__settings.beginGroup("Identities")
-        for key in self.__settings.childKeys():
+        for key in self.__settings.childGroups():
             self.__identities[key] = IrcIdentity(key)
             self.__settings.beginGroup(key)
             self.__identities[key].load(self.__settings)
@@ -656,7 +650,7 @@
         
         # networks
         self.__settings.beginGroup("Networks")
-        for key in self.__settings.childKeys():
+        for key in self.__settings.childGroups():
             self.__networks[key] = IrcNetwork(key)
             self.__settings.beginGroup(key)
             self.__networks[key].load(self.__settings)
@@ -666,7 +660,6 @@
         self.__settings.endGroup()
         
         if not self.__identities or \
-           not self.__servers or \
            not self.__networks:
             # data structures got corrupted; load defaults
             self.__loadDefaults()
@@ -686,7 +679,6 @@
         if not identityOnly:
             self.__networks = {}
             self.__identities = {}
-            self.__servers = {}
         
         # identity
         identity = IrcIdentity.createDefaultIdentity()

eric ide

mercurial