Network/IRC/IrcWidget.py

changeset 2236
e30d5f978919
parent 2234
1e33501a0d33
child 2237
baddb671c326
equal deleted inserted replaced
2235:266800cbe7cc 2236:e30d5f978919
56 self.networkWidget.nickChanged.connect(self.__changeNick) 56 self.networkWidget.nickChanged.connect(self.__changeNick)
57 57
58 self.__channelList = [] 58 self.__channelList = []
59 self.__channelTypePrefixes = "" 59 self.__channelTypePrefixes = ""
60 self.__userName = "" 60 self.__userName = ""
61 self.__identityName = ""
61 self.__nickIndex = -1 62 self.__nickIndex = -1
62 self.__nickName = "" 63 self.__nickName = ""
63 self.__server = None 64 self.__server = None
64 self.__registering = False 65 self.__registering = False
65 66
101 if self.__server: 102 if self.__server:
102 ok = E5MessageBox.yesNo(self, 103 ok = E5MessageBox.yesNo(self,
103 self.trUtf8("Disconnect from Server"), 104 self.trUtf8("Disconnect from Server"),
104 self.trUtf8("""<p>Do you really want to disconnect from""" 105 self.trUtf8("""<p>Do you really want to disconnect from"""
105 """ <b>{0}</b>?</p><p>All channels will be closed.</p>""")\ 106 """ <b>{0}</b>?</p><p>All channels will be closed.</p>""")\
106 .format(self.__server.getServer())) 107 .format(self.__server.getName()))
107 if ok: 108 if ok:
108 self.__socket.blockSignals(True) 109 self.__socket.blockSignals(True)
109 110
110 self.__send("QUIT :" + self.trUtf8("IRC for eric IDE")) 111 self.__send("QUIT :" + self.trUtf8("IRC for eric IDE"))
111 self.__socket.close() 112 self.__socket.close()
125 @param connect flag indicating to connect (boolean) 126 @param connect flag indicating to connect (boolean)
126 """ 127 """
127 if connect: 128 if connect:
128 network = self.__ircNetworkManager.getNetwork(name) 129 network = self.__ircNetworkManager.getNetwork(name)
129 if network: 130 if network:
130 self.__server = self.__ircNetworkManager.getServer( 131 self.__server = network.getServer(network.getServerNames()[0])
131 network.getServerName()) 132 self.__identityName = network.getIdentityName()
132 self.__userName = network.getIdentityName() 133 identity = self.__ircNetworkManager.getIdentity(self.__identityName)
134 self.__userName = identity.getIdent()
133 if self.__server: 135 if self.__server:
134 self.networkWidget.addServerMessage(self.trUtf8("Info"), 136 self.networkWidget.addServerMessage(self.trUtf8("Info"),
135 self.trUtf8("Looking for server {0} (port {1})...").format( 137 self.trUtf8("Looking for server {0} (port {1})...").format(
136 self.__server.getServer(), self.__server.getPort())) 138 self.__server.getName(), self.__server.getPort()))
137 self.__socket.connectToHost(self.__server.getServer(), 139 self.__socket.connectToHost(self.__server.getName(),
138 self.__server.getPort()) 140 self.__server.getPort())
139 else: 141 else:
140 ok = E5MessageBox.yesNo(self, 142 ok = E5MessageBox.yesNo(self,
141 self.trUtf8("Disconnect from Server"), 143 self.trUtf8("Disconnect from Server"),
142 self.trUtf8("""<p>Do you really want to disconnect from""" 144 self.trUtf8("""<p>Do you really want to disconnect from"""
143 """ <b>{0}</b>?</p><p>All channels will be closed.</p>""")\ 145 """ <b>{0}</b>?</p><p>All channels will be closed.</p>""")\
144 .format(self.__server.getServer())) 146 .format(self.__server.getName()))
145 if ok: 147 if ok:
146 self.networkWidget.addServerMessage(self.trUtf8("Info"), 148 self.networkWidget.addServerMessage(self.trUtf8("Info"),
147 self.trUtf8("Disconnecting from server {0}...").format( 149 self.trUtf8("Disconnecting from server {0}...").format(
148 self.__server.getServer())) 150 self.__server.getName()))
149 while self.__channelList: 151 while self.__channelList:
150 channel = self.__channelList.pop() 152 channel = self.__channelList.pop()
151 self.channelsWidget.removeTab(self.channelsWidget.indexOf(channel)) 153 self.channelsWidget.removeTab(self.channelsWidget.indexOf(channel))
152 channel.deleteLater() 154 channel.deleteLater()
153 channel = None 155 channel = None
154 self.__send("QUIT :" + self.trUtf8("IRC for eric IDE")) 156 self.__send("QUIT :" + self.trUtf8("IRC for eric IDE"))
155 self.__socket.close() 157 self.__socket.close()
158 self.__userName = ""
159 self.__identityName = ""
156 160
157 def __editNetwork(self, name): 161 def __editNetwork(self, name):
158 """ 162 """
159 Private slot to edit the network configuration. 163 Private slot to edit the network configuration.
160 164
161 @param name name of the network to edit (string) 165 @param name name of the network to edit (string)
162 """ 166 """
163 # TODO: implement this
164 dlg = IrcNetworkListDialog(self.__ircNetworkManager, self) 167 dlg = IrcNetworkListDialog(self.__ircNetworkManager, self)
165 dlg.exec_() 168 dlg.exec_()
166 169
167 def __joinChannel(self, name, key=""): 170 def __joinChannel(self, name, key=""):
168 """ 171 """
262 self.__send("PASS " + serverPassword) 265 self.__send("PASS " + serverPassword)
263 nick = self.networkWidget.getNickname() 266 nick = self.networkWidget.getNickname()
264 if not nick: 267 if not nick:
265 self.__nickIndex = 0 268 self.__nickIndex = 0
266 try: 269 try:
267 nick = self.__ircNetworkManager.getIdentity(self.__userName)\ 270 nick = self.__ircNetworkManager.getIdentity(self.__identityName)\
268 .getNickNames()[self.__nickIndex] 271 .getNickNames()[self.__nickIndex]
269 except IndexError: 272 except IndexError:
270 nick = "" 273 nick = ""
271 if not nick: 274 if not nick:
272 nick = self.__userName 275 nick = self.__userName
273 self.__nickName = nick 276 self.__nickName = nick
274 self.networkWidget.setNickName(nick) 277 self.networkWidget.setNickName(nick)
278 realName = self.__ircNetworkManager.getIdentity(self.__identityName).getRealName()
279 if not realName:
280 realName = "eric IDE chat"
275 self.__send("NICK " + nick) 281 self.__send("NICK " + nick)
276 self.__send("USER " + self.__userName + " 0 * :eric IDE chat") 282 self.__send("USER " + self.__userName + " 0 * :" + realName)
277 283
278 def __hostDisconnected(self): 284 def __hostDisconnected(self):
279 """ 285 """
280 Private slot to indicate the host was disconnected. 286 Private slot to indicate the host was disconnected.
281 """ 287 """
482 488
483 def __registerWithServices(self): 489 def __registerWithServices(self):
484 """ 490 """
485 Private method to register to services. 491 Private method to register to services.
486 """ 492 """
487 identity = self.__ircNetworkManager.getIdentity(self.__userName) 493 identity = self.__ircNetworkManager.getIdentity(self.__identityName)
488 service = identity.getName() 494 service = identity.getName()
489 password = identity.getPassword() 495 password = identity.getPassword()
490 if service and password: 496 if service and password:
491 self.__send("PRIVMSG " + service + " :identify " + password) 497 self.__send("PRIVMSG " + service + " :identify " + password)
492 498
561 """ 567 """
562 Private method to handle a 443 server error at login. 568 Private method to handle a 443 server error at login.
563 """ 569 """
564 self.__nickIndex += 1 570 self.__nickIndex += 1
565 try: 571 try:
566 nick = self.__ircNetworkManager.getIdentity(self.__userName)\ 572 nick = self.__ircNetworkManager.getIdentity(self.__identityName)\
567 .getNickNames()[self.__nickIndex] 573 .getNickNames()[self.__nickIndex]
568 self.__nickName = nick 574 self.__nickName = nick
569 except IndexError: 575 except IndexError:
570 self.networkWidget.addServerMessage(self.trUtf8("Critical"), 576 self.networkWidget.addServerMessage(self.trUtf8("Critical"),
571 self.trUtf8("No nickname acceptable to the server configured" 577 self.trUtf8("No nickname acceptable to the server configured"

eric ide

mercurial