Network/IRC/IrcNetworkManager.py

changeset 2231
241df9311ade
parent 2227
b7aceb255831
child 2232
47290dad6d0b
equal deleted inserted replaced
2230:2b1b9265156c 2231:241df9311ade
17 17
18 class IrcIdentity(QObject): 18 class IrcIdentity(QObject):
19 """ 19 """
20 Class implementing the IRC identity object. 20 Class implementing the IRC identity object.
21 """ 21 """
22 DefaultIdentityName = "0default"
23
22 def __init__(self, name, parent=None): 24 def __init__(self, name, parent=None):
23 """ 25 """
24 Constructor 26 Constructor
25 27
26 @param name name of the identity (string) 28 @param name name of the identity (string)
456 not self.__servers or \ 458 not self.__servers or \
457 not self.__networks: 459 not self.__networks:
458 # data structures got corrupted; load defaults 460 # data structures got corrupted; load defaults
459 self.__loadDefaults() 461 self.__loadDefaults()
460 462
463 if IrcIdentity.DefaultIdentityName not in self.__identities:
464 self.__loadDefaults(identityOnly=True)
465
461 self.__loaded = True 466 self.__loaded = True
462 467
463 def __loadDefaults(self): 468 def __loadDefaults(self, identityOnly=False):
464 """ 469 """
465 Private method to load default values. 470 Private method to load default values.
466 """ 471
467 self.__networks = {} 472 @param identityOnly flag indicating to just load the default
468 self.__identities = {} 473 identity (boolean)
469 self.__servers = {} 474 """
475 if not identityOnly:
476 self.__networks = {}
477 self.__identities = {}
478 self.__servers = {}
470 479
471 # identity 480 # identity
472 userName = Utilities.getUserName() 481 userName = Utilities.getUserName()
473 identity = IrcIdentity(userName, self) 482 identity = IrcIdentity(IrcIdentity.DefaultIdentityName, self)
474 identity.setNickNames([userName, userName + "_", userName + "__"]) 483 identity.setNickNames([userName, userName + "_", userName + "__"])
475 self.__identities[userName] = identity 484 self.__identities[IrcIdentity.DefaultIdentityName] = identity
476 485
477 # server 486 if not identityOnly:
478 serverName = "chat.freenode.net" 487 # server
479 server = IrcServer(serverName, self) 488 serverName = "chat.freenode.net"
480 server.setPort(8001) 489 server = IrcServer(serverName, self)
481 self.__servers[serverName] = server 490 server.setPort(8001)
482 491 self.__servers[serverName] = server
483 # network 492
484 networkName = "Freenode" 493 # network
485 network = IrcNetwork(networkName, self) 494 networkName = "Freenode"
486 network.setIdentityName(userName) 495 network = IrcNetwork(networkName, self)
487 network.setServerName(serverName) 496 network.setIdentityName(IrcIdentity.DefaultIdentityName)
488 network.setChannels(["#eric-ide"]) 497 network.setServerName(serverName)
489 self.__networks[networkName] = network 498 network.setChannels(["#eric-ide"])
499 self.__networks[networkName] = network
490 500
491 self.dataChanged.emit() 501 self.dataChanged.emit()
492 502
493 def getIdentity(self, name, create=False): 503 def getIdentity(self, name, create=False):
494 """ 504 """
515 525
516 return id 526 return id
517 else: 527 else:
518 return None 528 return None
519 529
530 def getIdentityNames(self):
531 """
532 Public method to get the names of all identities.
533
534 @return names of all identities (list of string)
535 """
536 return list(self.__identities.keys())
537
538 def addIdentity(self, identity):
539 """
540 Public method to add a new identity.
541
542 @param identity reference to the identity to add (IrcIdentity)
543 """
544 name = identity.getName()
545 self.__identities[name] = identity
546 self.dataChanged.emit()
547
548 def deleteIdentity(self, name):
549 """
550 Public method to delete the given identity.
551
552 @param name name of the identity to delete (string)
553 """
554 if name in self.__identities and name != IrcIdentity.DefaultIdentityName:
555 del self.__identities[name]
556 self.dataChanged.emit()
557
558 def renameIdentity(self, oldName, newName):
559 """
560 Public method to rename an identity.
561
562 @param oldName old name of the identity (string)
563 @param newName new name of the identity (string)
564 """
565 if oldName in self.__identities:
566 self.__identities[newName] = self.__identities[oldName]
567 del self.__identities[oldName]
568
569 for network in self.__networks:
570 if network.getIdentityName() == oldName:
571 network.setIdentityName(newName)
572
573 self.dataChanged.emit()
574
520 def identityChanged(self): 575 def identityChanged(self):
521 """ 576 """
522 Public method to indicate a change of an identity object. 577 Public method to indicate a change of an identity object.
523 """ 578 """
524 self.dataChanged.emit() 579 self.dataChanged.emit()

eric ide

mercurial