Network/IRC/IrcWidget.py

branch
Py2 comp.
changeset 3484
645c12de6b0c
parent 3178
f25fc1364c88
parent 3345
071afe8be2a1
child 3656
441956d8fce5
equal deleted inserted replaced
3456:96232974dcdb 3484:645c12de6b0c
7 Module implementing the IRC window. 7 Module implementing the IRC window.
8 """ 8 """
9 9
10 from __future__ import unicode_literals 10 from __future__ import unicode_literals
11 try: 11 try:
12 str = unicode # __IGNORE_WARNING__ 12 str = unicode
13 except (NameError): 13 except NameError:
14 pass 14 pass
15 15
16 import re 16 import re
17 import logging 17 import logging
18 18
64 64
65 self.__leaveButton = QToolButton(self) 65 self.__leaveButton = QToolButton(self)
66 self.__leaveButton.setIcon( 66 self.__leaveButton.setIcon(
67 UI.PixmapCache.getIcon("ircCloseChannel.png")) 67 UI.PixmapCache.getIcon("ircCloseChannel.png"))
68 self.__leaveButton.setToolTip( 68 self.__leaveButton.setToolTip(
69 self.trUtf8("Press to leave the current channel")) 69 self.tr("Press to leave the current channel"))
70 self.__leaveButton.clicked[()].connect(self.__leaveChannel) 70 self.__leaveButton.clicked.connect(self.__leaveChannel)
71 self.__leaveButton.setEnabled(False) 71 self.__leaveButton.setEnabled(False)
72 self.channelsWidget.setCornerWidget( 72 self.channelsWidget.setCornerWidget(
73 self.__leaveButton, Qt.BottomRightCorner) 73 self.__leaveButton, Qt.BottomRightCorner)
74 self.channelsWidget.setTabsClosable(False) 74 self.channelsWidget.setTabsClosable(False)
75 if not isMacPlatform(): 75 if not isMacPlatform():
141 """ 141 """
142 if self.__server: 142 if self.__server:
143 if Preferences.getIrc("AskOnShutdown"): 143 if Preferences.getIrc("AskOnShutdown"):
144 ok = E5MessageBox.yesNo( 144 ok = E5MessageBox.yesNo(
145 self, 145 self,
146 self.trUtf8("Disconnect from Server"), 146 self.tr("Disconnect from Server"),
147 self.trUtf8( 147 self.tr(
148 """<p>Do you really want to disconnect from""" 148 """<p>Do you really want to disconnect from"""
149 """ <b>{0}</b>?</p><p>All channels will be closed.""" 149 """ <b>{0}</b>?</p><p>All channels will be closed."""
150 """</p>""").format(self.__server.getName())) 150 """</p>""").format(self.__server.getName()))
151 else: 151 else:
152 ok = True 152 ok = True
191 if self.__server: 191 if self.__server:
192 useSSL = self.__server.useSSL() 192 useSSL = self.__server.useSSL()
193 if useSSL and not SSL_AVAILABLE: 193 if useSSL and not SSL_AVAILABLE:
194 E5MessageBox.critical( 194 E5MessageBox.critical(
195 self, 195 self,
196 self.trUtf8("SSL Connection"), 196 self.tr("SSL Connection"),
197 self.trUtf8( 197 self.tr(
198 """An encrypted connection to the IRC""" 198 """An encrypted connection to the IRC"""
199 """ network was requested but SSL is not""" 199 """ network was requested but SSL is not"""
200 """ available. Please change the server""" 200 """ available. Please change the server"""
201 """ configuration.""")) 201 """ configuration."""))
202 return 202 return
216 self.__socket.error.connect(self.__tcpError) 216 self.__socket.error.connect(self.__tcpError)
217 217
218 self.__connectionState = IrcWidget.ServerConnecting 218 self.__connectionState = IrcWidget.ServerConnecting
219 if useSSL: 219 if useSSL:
220 self.networkWidget.addServerMessage( 220 self.networkWidget.addServerMessage(
221 self.trUtf8("Info"), 221 self.tr("Info"),
222 self.trUtf8("Looking for server {0} (port {1})" 222 self.tr("Looking for server {0} (port {1})"
223 " using an SSL encrypted connection" 223 " using an SSL encrypted connection"
224 "...").format(self.__server.getName(), 224 "...").format(self.__server.getName(),
225 self.__server.getPort())) 225 self.__server.getPort()))
226 self.__socket.connectToHostEncrypted( 226 self.__socket.connectToHostEncrypted(
227 self.__server.getName(), self.__server.getPort()) 227 self.__server.getName(), self.__server.getPort())
228 else: 228 else:
229 self.networkWidget.addServerMessage( 229 self.networkWidget.addServerMessage(
230 self.trUtf8("Info"), 230 self.tr("Info"),
231 self.trUtf8( 231 self.tr(
232 "Looking for server {0} (port {1})...").format( 232 "Looking for server {0} (port {1})...").format(
233 self.__server.getName(), 233 self.__server.getName(),
234 self.__server.getPort())) 234 self.__server.getPort()))
235 self.__socket.connectToHost(self.__server.getName(), 235 self.__socket.connectToHost(self.__server.getName(),
236 self.__server.getPort()) 236 self.__server.getPort())
238 if silent: 238 if silent:
239 ok = True 239 ok = True
240 else: 240 else:
241 ok = E5MessageBox.yesNo( 241 ok = E5MessageBox.yesNo(
242 self, 242 self,
243 self.trUtf8("Disconnect from Server"), 243 self.tr("Disconnect from Server"),
244 self.trUtf8("""<p>Do you really want to disconnect from""" 244 self.tr("""<p>Do you really want to disconnect from"""
245 """ <b>{0}</b>?</p><p>All channels will be""" 245 """ <b>{0}</b>?</p><p>All channels will be"""
246 """ closed.</p>""") 246 """ closed.</p>""")
247 .format(self.__server.getName())) 247 .format(self.__server.getName()))
248 if ok: 248 if ok:
249 self.networkWidget.addServerMessage( 249 self.networkWidget.addServerMessage(
250 self.trUtf8("Info"), 250 self.tr("Info"),
251 self.trUtf8("Disconnecting from server {0}...").format( 251 self.tr("Disconnecting from server {0}...").format(
252 self.__server.getName())) 252 self.__server.getName()))
253 self.__closeAllChannels() 253 self.__closeAllChannels()
254 self.__send("QUIT :" + self.__quitMessage) 254 self.__send("QUIT :" + self.__quitMessage)
255 self.__socket and self.__socket.flush() 255 self.__socket and self.__socket.flush()
256 self.__socket and self.__socket.close() 256 self.__socket and self.__socket.close()
443 def __hostFound(self): 443 def __hostFound(self):
444 """ 444 """
445 Private slot to indicate the host was found. 445 Private slot to indicate the host was found.
446 """ 446 """
447 self.networkWidget.addServerMessage( 447 self.networkWidget.addServerMessage(
448 self.trUtf8("Info"), 448 self.tr("Info"),
449 self.trUtf8("Server found,connecting...")) 449 self.tr("Server found,connecting..."))
450 450
451 def __hostConnected(self): 451 def __hostConnected(self):
452 """ 452 """
453 Private slot to log in to the server after the connection was 453 Private slot to log in to the server after the connection was
454 established. 454 established.
455 """ 455 """
456 self.networkWidget.addServerMessage( 456 self.networkWidget.addServerMessage(
457 self.trUtf8("Info"), 457 self.tr("Info"),
458 self.trUtf8("Connected,logging in...")) 458 self.tr("Connected,logging in..."))
459 self.networkWidget.setConnected(True) 459 self.networkWidget.setConnected(True)
460 460
461 self.__registering = True 461 self.__registering = True
462 serverPassword = self.__server.getPassword() 462 serverPassword = self.__server.getPassword()
463 if serverPassword: 463 if serverPassword:
486 Private slot to indicate the host was disconnected. 486 Private slot to indicate the host was disconnected.
487 """ 487 """
488 if self.networkWidget.isConnected(): 488 if self.networkWidget.isConnected():
489 self.__closeAllChannels() 489 self.__closeAllChannels()
490 self.networkWidget.addServerMessage( 490 self.networkWidget.addServerMessage(
491 self.trUtf8("Info"), 491 self.tr("Info"),
492 self.trUtf8("Server disconnected.")) 492 self.tr("Server disconnected."))
493 self.networkWidget.setRegistered(False) 493 self.networkWidget.setRegistered(False)
494 self.networkWidget.setConnected(False) 494 self.networkWidget.setConnected(False)
495 self.__server = None 495 self.__server = None
496 self.__nickName = "" 496 self.__nickName = ""
497 self.__nickIndex = -1 497 self.__nickIndex = -1
531 if patternFunc(match): 531 if patternFunc(match):
532 break 532 break
533 else: 533 else:
534 # Oops, the message wasn't handled 534 # Oops, the message wasn't handled
535 self.networkWidget.addErrorMessage( 535 self.networkWidget.addErrorMessage(
536 self.trUtf8("Message Error"), 536 self.tr("Message Error"),
537 self.trUtf8( 537 self.tr(
538 "Unknown message received from server:" 538 "Unknown message received from server:"
539 "<br/>{0}").format(line)) 539 "<br/>{0}").format(line))
540 540
541 self.__updateUsersCount() 541 self.__updateUsersCount()
542 self.__buffer = "" 542 self.__buffer = ""
555 except IndexError: 555 except IndexError:
556 msg = match.group(3) 556 msg = match.group(3)
557 if "!" in match.group(1): 557 if "!" in match.group(1):
558 name = match.group(1).split("!", 1)[0] 558 name = match.group(1).split("!", 1)[0]
559 msg = "-{0}- {1}".format(name, msg) 559 msg = "-{0}- {1}".format(name, msg)
560 self.networkWidget.addServerMessage(self.trUtf8("Notice"), msg) 560 self.networkWidget.addServerMessage(self.tr("Notice"), msg)
561 return True 561 return True
562 elif name == "MODE": 562 elif name == "MODE":
563 self.__registering = False 563 self.__registering = False
564 if ":" in match.group(3): 564 if ":" in match.group(3):
565 # :detlev_ MODE detlev_ :+i 565 # :detlev_ MODE detlev_ :+i
566 name, modes = match.group(3).split(" :") 566 name, modes = match.group(3).split(" :")
567 sourceNick = match.group(1) 567 sourceNick = match.group(1)
568 if not self.isChannelName(name): 568 if not self.isChannelName(name):
569 if name == self.__nickName: 569 if name == self.__nickName:
570 if sourceNick == self.__nickName: 570 if sourceNick == self.__nickName:
571 msg = self.trUtf8( 571 msg = self.tr(
572 "You have set your personal modes to" 572 "You have set your personal modes to"
573 " <b>[{0}]</b>.").format(modes) 573 " <b>[{0}]</b>.").format(modes)
574 else: 574 else:
575 msg = self.trUtf8( 575 msg = self.tr(
576 "{0} has changed your personal modes to" 576 "{0} has changed your personal modes to"
577 " <b>[{1}]</b>.").format(sourceNick, modes) 577 " <b>[{1}]</b>.").format(sourceNick, modes)
578 self.networkWidget.addServerMessage( 578 self.networkWidget.addServerMessage(
579 self.trUtf8("Mode"), msg, filterMsg=False) 579 self.tr("Mode"), msg, filterMsg=False)
580 return True 580 return True
581 elif name == "PART": 581 elif name == "PART":
582 nick = match.group(1).split("!", 1)[0] 582 nick = match.group(1).split("!", 1)[0]
583 if nick == self.__nickName: 583 if nick == self.__nickName:
584 channel = match.group(3).split(None, 1)[0] 584 channel = match.group(3).split(None, 1)[0]
585 self.networkWidget.addMessage( 585 self.networkWidget.addMessage(
586 self.trUtf8("You have left channel {0}.").format(channel)) 586 self.tr("You have left channel {0}.").format(channel))
587 return True 587 return True
588 elif name == "QUIT": 588 elif name == "QUIT":
589 # don't do anything with it here 589 # don't do anything with it here
590 return True 590 return True
591 elif name == "NICK": 591 elif name == "NICK":
592 # :foo_!n=foo@foohost.bar.net NICK :newnick 592 # :foo_!n=foo@foohost.bar.net NICK :newnick
593 oldNick = match.group(1).split("!", 1)[0] 593 oldNick = match.group(1).split("!", 1)[0]
594 newNick = match.group(3).split(":", 1)[1] 594 newNick = match.group(3).split(":", 1)[1]
595 if oldNick == self.__nickName: 595 if oldNick == self.__nickName:
596 self.networkWidget.addMessage( 596 self.networkWidget.addMessage(
597 self.trUtf8("You are now known as {0}.").format(newNick)) 597 self.tr("You are now known as {0}.").format(newNick))
598 self.__nickName = newNick 598 self.__nickName = newNick
599 self.networkWidget.setNickName(newNick) 599 self.networkWidget.setNickName(newNick)
600 else: 600 else:
601 self.networkWidget.addMessage( 601 self.networkWidget.addMessage(
602 self.trUtf8("User {0} is now known as {1}.").format( 602 self.tr("User {0} is now known as {1}.").format(
603 oldNick, newNick)) 603 oldNick, newNick))
604 return True 604 return True
605 elif name == "ERROR": 605 elif name == "ERROR":
606 self.networkWidget.addErrorMessage( 606 self.networkWidget.addErrorMessage(
607 self.trUtf8("Server Error"), match.group(3).split(":", 1)[1]) 607 self.tr("Server Error"), match.group(3).split(":", 1)[1])
608 return True 608 return True
609 609
610 return False 610 return False
611 611
612 def __handleNumericMessage(self, match): 612 def __handleNumericMessage(self, match):
637 if self.__registering: 637 if self.__registering:
638 self.__handleNickInUseLogin() 638 self.__handleNickInUseLogin()
639 else: 639 else:
640 self.__handleNickInUse() 640 self.__handleNickInUse()
641 else: 641 else:
642 self.networkWidget.addServerMessage(self.trUtf8("Error"), message) 642 self.networkWidget.addServerMessage(self.tr("Error"), message)
643 643
644 return True 644 return True
645 645
646 def __handleServerReply(self, code, server, message): 646 def __handleServerReply(self, code, server, message):
647 """ 647 """
652 @param message message sent by the server (string) 652 @param message message sent by the server (string)
653 @return flag indicating, if the message was handled (boolean) 653 @return flag indicating, if the message was handled (boolean)
654 """ 654 """
655 # determine message type 655 # determine message type
656 if code in [1, 2, 3, 4]: 656 if code in [1, 2, 3, 4]:
657 msgType = self.trUtf8("Welcome") 657 msgType = self.tr("Welcome")
658 elif code == 5: 658 elif code == 5:
659 msgType = self.trUtf8("Support") 659 msgType = self.tr("Support")
660 elif code in [250, 251, 252, 253, 254, 255, 265, 266]: 660 elif code in [250, 251, 252, 253, 254, 255, 265, 266]:
661 msgType = self.trUtf8("User") 661 msgType = self.tr("User")
662 elif code in [372, 375, 376]: 662 elif code in [372, 375, 376]:
663 msgType = self.trUtf8("MOTD") 663 msgType = self.tr("MOTD")
664 elif code in [305, 306]: 664 elif code in [305, 306]:
665 msgType = self.trUtf8("Away") 665 msgType = self.tr("Away")
666 else: 666 else:
667 msgType = self.trUtf8("Info ({0})").format(code) 667 msgType = self.tr("Info ({0})").format(code)
668 668
669 # special treatment for some messages 669 # special treatment for some messages
670 if code == 375: 670 if code == 375:
671 message = self.trUtf8("Message of the day") 671 message = self.tr("Message of the day")
672 elif code == 376: 672 elif code == 376:
673 message = self.trUtf8("End of message of the day") 673 message = self.tr("End of message of the day")
674 elif code == 4: 674 elif code == 4:
675 parts = message.strip().split() 675 parts = message.strip().split()
676 message = self.trUtf8( 676 message = self.tr(
677 "Server {0} (Version {1}), User-Modes: {2}," 677 "Server {0} (Version {1}), User-Modes: {2},"
678 " Channel-Modes: {3}")\ 678 " Channel-Modes: {3}")\
679 .format(parts[1], parts[2], parts[3], parts[4]) 679 .format(parts[1], parts[2], parts[3], parts[4])
680 elif code == 265: 680 elif code == 265:
681 parts = message.strip().split() 681 parts = message.strip().split()
682 message = self.trUtf8( 682 message = self.tr(
683 "Current users on {0}: {1}, max. {2}").format( 683 "Current users on {0}: {1}, max. {2}").format(
684 server, parts[1], parts[2]) 684 server, parts[1], parts[2])
685 elif code == 266: 685 elif code == 266:
686 parts = message.strip().split() 686 parts = message.strip().split()
687 message = self.trUtf8( 687 message = self.tr(
688 "Current users on the network: {0}, max. {1}").format( 688 "Current users on the network: {0}, max. {1}").format(
689 parts[1], parts[2]) 689 parts[1], parts[2])
690 elif code == 305: 690 elif code == 305:
691 message = self.trUtf8("You are no longer marked as being away.") 691 message = self.tr("You are no longer marked as being away.")
692 elif code == 306: 692 elif code == 306:
693 message = self.trUtf8("You have been marked as being away.") 693 message = self.tr("You have been marked as being away.")
694 else: 694 else:
695 first, message = message.split(None, 1) 695 first, message = message.split(None, 1)
696 if message.startswith(":"): 696 if message.startswith(":"):
697 message = message[1:] 697 message = message[1:]
698 else: 698 else:
750 """ 750 """
751 if error == QAbstractSocket.RemoteHostClosedError: 751 if error == QAbstractSocket.RemoteHostClosedError:
752 # ignore this one, it's a disconnect 752 # ignore this one, it's a disconnect
753 if self.__sslErrorLock: 753 if self.__sslErrorLock:
754 self.networkWidget.addErrorMessage( 754 self.networkWidget.addErrorMessage(
755 self.trUtf8("SSL Error"), 755 self.tr("SSL Error"),
756 self.trUtf8( 756 self.tr(
757 """Connection to server {0} (port {1}) lost while""" 757 """Connection to server {0} (port {1}) lost while"""
758 """ waiting for user response to an SSL error.""") 758 """ waiting for user response to an SSL error.""")
759 .format(self.__server.getName(), self.__server.getPort())) 759 .format(self.__server.getName(), self.__server.getPort()))
760 self.__connectionState = IrcWidget.ServerDisconnected 760 self.__connectionState = IrcWidget.ServerDisconnected
761 elif error == QAbstractSocket.HostNotFoundError: 761 elif error == QAbstractSocket.HostNotFoundError:
762 self.networkWidget.addErrorMessage( 762 self.networkWidget.addErrorMessage(
763 self.trUtf8("Socket Error"), 763 self.tr("Socket Error"),
764 self.trUtf8( 764 self.tr(
765 "The host was not found. Please check the host name" 765 "The host was not found. Please check the host name"
766 " and port settings.")) 766 " and port settings."))
767 elif error == QAbstractSocket.ConnectionRefusedError: 767 elif error == QAbstractSocket.ConnectionRefusedError:
768 self.networkWidget.addErrorMessage( 768 self.networkWidget.addErrorMessage(
769 self.trUtf8("Socket Error"), 769 self.tr("Socket Error"),
770 self.trUtf8( 770 self.tr(
771 "The connection was refused by the peer. Please check the" 771 "The connection was refused by the peer. Please check the"
772 " host name and port settings.")) 772 " host name and port settings."))
773 elif error == QAbstractSocket.SslHandshakeFailedError: 773 elif error == QAbstractSocket.SslHandshakeFailedError:
774 self.networkWidget.addErrorMessage( 774 self.networkWidget.addErrorMessage(
775 self.trUtf8("Socket Error"), 775 self.tr("Socket Error"),
776 self.trUtf8("The SSL handshake failed.")) 776 self.tr("The SSL handshake failed."))
777 else: 777 else:
778 if self.__socket: 778 if self.__socket:
779 self.networkWidget.addErrorMessage( 779 self.networkWidget.addErrorMessage(
780 self.trUtf8("Socket Error"), 780 self.tr("Socket Error"),
781 self.trUtf8( 781 self.tr(
782 "The following network error occurred:<br/>{0}") 782 "The following network error occurred:<br/>{0}")
783 .format(self.__socket.errorString())) 783 .format(self.__socket.errorString()))
784 else: 784 else:
785 self.networkWidget.addErrorMessage( 785 self.networkWidget.addErrorMessage(
786 self.trUtf8("Socket Error"), 786 self.tr("Socket Error"),
787 self.trUtf8("A network error occurred.")) 787 self.tr("A network error occurred."))
788 788
789 def __sslErrors(self, errors): 789 def __sslErrors(self, errors):
790 """ 790 """
791 Private slot to handle SSL errors. 791 Private slot to handle SSL errors.
792 792
794 """ 794 """
795 ignored, defaultChanged = self.__sslErrorHandler.sslErrors( 795 ignored, defaultChanged = self.__sslErrorHandler.sslErrors(
796 errors, self.__server.getName(), self.__server.getPort()) 796 errors, self.__server.getName(), self.__server.getPort())
797 if ignored == E5SslErrorHandler.NotIgnored: 797 if ignored == E5SslErrorHandler.NotIgnored:
798 self.networkWidget.addErrorMessage( 798 self.networkWidget.addErrorMessage(
799 self.trUtf8("SSL Error"), 799 self.tr("SSL Error"),
800 self.trUtf8( 800 self.tr(
801 """Could not connect to {0} (port {1}) using an SSL""" 801 """Could not connect to {0} (port {1}) using an SSL"""
802 """ encrypted connection. Either the server does not""" 802 """ encrypted connection. Either the server does not"""
803 """ support SSL (did you use the correct port?) or""" 803 """ support SSL (did you use the correct port?) or"""
804 """ you rejected the certificate.""") 804 """ you rejected the certificate.""")
805 .format(self.__server.getName(), self.__server.getPort())) 805 .format(self.__server.getName(), self.__server.getPort()))
808 if defaultChanged: 808 if defaultChanged:
809 self.__socket.setSslConfiguration( 809 self.__socket.setSslConfiguration(
810 QSslConfiguration.defaultConfiguration()) 810 QSslConfiguration.defaultConfiguration())
811 if ignored == E5SslErrorHandler.UserIgnored: 811 if ignored == E5SslErrorHandler.UserIgnored:
812 self.networkWidget.addErrorMessage( 812 self.networkWidget.addErrorMessage(
813 self.trUtf8("SSL Error"), 813 self.tr("SSL Error"),
814 self.trUtf8( 814 self.tr(
815 """The SSL certificate for the server {0} (port {1})""" 815 """The SSL certificate for the server {0} (port {1})"""
816 """ failed the authenticity check. SSL errors""" 816 """ failed the authenticity check. SSL errors"""
817 """ were accepted by you.""") 817 """ were accepted by you.""")
818 .format(self.__server.getName(), self.__server.getPort())) 818 .format(self.__server.getName(), self.__server.getPort()))
819 if self.__connectionState == IrcWidget.ServerConnecting: 819 if self.__connectionState == IrcWidget.ServerConnecting:
866 vers = "" 866 vers = ""
867 else: 867 else:
868 vers = " " + Version 868 vers = " " + Version
869 msg = "Eric IRC client{0}, {1}".format(vers, Copyright) 869 msg = "Eric IRC client{0}, {1}".format(vers, Copyright)
870 self.networkWidget.addServerMessage( 870 self.networkWidget.addServerMessage(
871 self.trUtf8("CTCP"), 871 self.tr("CTCP"),
872 self.trUtf8("Received Version request from {0}.").format( 872 self.tr("Received Version request from {0}.").format(
873 match.group(1))) 873 match.group(1)))
874 self.__sendCtcpReply(match.group(1), "VERSION " + msg) 874 self.__sendCtcpReply(match.group(1), "VERSION " + msg)
875 elif ctcpRequest == "ping": 875 elif ctcpRequest == "ping":
876 self.networkWidget.addServerMessage( 876 self.networkWidget.addServerMessage(
877 self.trUtf8("CTCP"), 877 self.tr("CTCP"),
878 self.trUtf8( 878 self.tr(
879 "Received CTCP-PING request from {0}," 879 "Received CTCP-PING request from {0},"
880 " sending answer.").format(match.group(1))) 880 " sending answer.").format(match.group(1)))
881 self.__sendCtcpReply( 881 self.__sendCtcpReply(
882 match.group(1), "PING {0}".format(ctcpArg)) 882 match.group(1), "PING {0}".format(ctcpArg))
883 elif ctcpRequest == "clientinfo": 883 elif ctcpRequest == "clientinfo":
884 self.networkWidget.addServerMessage( 884 self.networkWidget.addServerMessage(
885 self.trUtf8("CTCP"), 885 self.tr("CTCP"),
886 self.trUtf8( 886 self.tr(
887 "Received CTCP-CLIENTINFO request from {0}," 887 "Received CTCP-CLIENTINFO request from {0},"
888 " sending answer.").format(match.group(1))) 888 " sending answer.").format(match.group(1)))
889 self.__sendCtcpReply( 889 self.__sendCtcpReply(
890 match.group(1), 890 match.group(1),
891 "CLIENTINFO CLIENTINFO PING VERSION") 891 "CLIENTINFO CLIENTINFO PING VERSION")
892 else: 892 else:
893 self.networkWidget.addServerMessage( 893 self.networkWidget.addServerMessage(
894 self.trUtf8("CTCP"), 894 self.tr("CTCP"),
895 self.trUtf8( 895 self.tr(
896 "Received unknown CTCP-{0} request from {1}.") 896 "Received unknown CTCP-{0} request from {1}.")
897 .format(ctcpRequest, match.group(1))) 897 .format(ctcpRequest, match.group(1)))
898 return True 898 return True
899 899
900 return False 900 return False
905 """ 905 """
906 for channel in self.__channelList: 906 for channel in self.__channelList:
907 index = self.channelsWidget.indexOf(channel) 907 index = self.channelsWidget.indexOf(channel)
908 self.channelsWidget.setTabText( 908 self.channelsWidget.setTabText(
909 index, 909 index,
910 self.trUtf8("{0} ({1})", "channel name, users count").format( 910 self.tr("{0} ({1})", "channel name, users count").format(
911 channel.name(), channel.getUsersCount())) 911 channel.name(), channel.getUsersCount()))
912 912
913 def __handleNickInUseLogin(self): 913 def __handleNickInUseLogin(self):
914 """ 914 """
915 Private method to handle a 443 server error at login. 915 Private method to handle a 443 server error at login.
919 nick = self.__ircNetworkManager.getIdentity(self.__identityName)\ 919 nick = self.__ircNetworkManager.getIdentity(self.__identityName)\
920 .getNickNames()[self.__nickIndex] 920 .getNickNames()[self.__nickIndex]
921 self.__nickName = nick 921 self.__nickName = nick
922 except IndexError: 922 except IndexError:
923 self.networkWidget.addServerMessage( 923 self.networkWidget.addServerMessage(
924 self.trUtf8("Critical"), 924 self.tr("Critical"),
925 self.trUtf8( 925 self.tr(
926 "No nickname acceptable to the server configured" 926 "No nickname acceptable to the server configured"
927 " for <b>{0}</b>. Disconnecting...") 927 " for <b>{0}</b>. Disconnecting...")
928 .format(self.__userName), 928 .format(self.__userName),
929 filterMsg=False) 929 filterMsg=False)
930 self.__connectNetwork("", False, silent=True) 930 self.__connectNetwork("", False, silent=True)
938 def __handleNickInUse(self): 938 def __handleNickInUse(self):
939 """ 939 """
940 Private method to handle a 443 server error. 940 Private method to handle a 443 server error.
941 """ 941 """
942 self.networkWidget.addServerMessage( 942 self.networkWidget.addServerMessage(
943 self.trUtf8("Critical"), 943 self.tr("Critical"),
944 self.trUtf8("The given nickname is already in use.")) 944 self.tr("The given nickname is already in use."))
945 945
946 def __changeNick(self, nick): 946 def __changeNick(self, nick):
947 """ 947 """
948 Private slot to use a new nick name. 948 Private slot to use a new nick name.
949 949

eric ide

mercurial