Network/IRC/IrcWidget.py

changeset 3190
a9a94491c4fd
parent 3160
209a07d7e401
child 3345
071afe8be2a1
equal deleted inserted replaced
3189:9a21c547de5f 3190:a9a94491c4fd
58 58
59 self.__leaveButton = QToolButton(self) 59 self.__leaveButton = QToolButton(self)
60 self.__leaveButton.setIcon( 60 self.__leaveButton.setIcon(
61 UI.PixmapCache.getIcon("ircCloseChannel.png")) 61 UI.PixmapCache.getIcon("ircCloseChannel.png"))
62 self.__leaveButton.setToolTip( 62 self.__leaveButton.setToolTip(
63 self.trUtf8("Press to leave the current channel")) 63 self.tr("Press to leave the current channel"))
64 self.__leaveButton.clicked[()].connect(self.__leaveChannel) 64 self.__leaveButton.clicked[()].connect(self.__leaveChannel)
65 self.__leaveButton.setEnabled(False) 65 self.__leaveButton.setEnabled(False)
66 self.channelsWidget.setCornerWidget( 66 self.channelsWidget.setCornerWidget(
67 self.__leaveButton, Qt.BottomRightCorner) 67 self.__leaveButton, Qt.BottomRightCorner)
68 self.channelsWidget.setTabsClosable(False) 68 self.channelsWidget.setTabsClosable(False)
135 """ 135 """
136 if self.__server: 136 if self.__server:
137 if Preferences.getIrc("AskOnShutdown"): 137 if Preferences.getIrc("AskOnShutdown"):
138 ok = E5MessageBox.yesNo( 138 ok = E5MessageBox.yesNo(
139 self, 139 self,
140 self.trUtf8("Disconnect from Server"), 140 self.tr("Disconnect from Server"),
141 self.trUtf8( 141 self.tr(
142 """<p>Do you really want to disconnect from""" 142 """<p>Do you really want to disconnect from"""
143 """ <b>{0}</b>?</p><p>All channels will be closed.""" 143 """ <b>{0}</b>?</p><p>All channels will be closed."""
144 """</p>""").format(self.__server.getName())) 144 """</p>""").format(self.__server.getName()))
145 else: 145 else:
146 ok = True 146 ok = True
185 if self.__server: 185 if self.__server:
186 useSSL = self.__server.useSSL() 186 useSSL = self.__server.useSSL()
187 if useSSL and not SSL_AVAILABLE: 187 if useSSL and not SSL_AVAILABLE:
188 E5MessageBox.critical( 188 E5MessageBox.critical(
189 self, 189 self,
190 self.trUtf8("SSL Connection"), 190 self.tr("SSL Connection"),
191 self.trUtf8( 191 self.tr(
192 """An encrypted connection to the IRC""" 192 """An encrypted connection to the IRC"""
193 """ network was requested but SSL is not""" 193 """ network was requested but SSL is not"""
194 """ available. Please change the server""" 194 """ available. Please change the server"""
195 """ configuration.""")) 195 """ configuration."""))
196 return 196 return
210 self.__socket.error.connect(self.__tcpError) 210 self.__socket.error.connect(self.__tcpError)
211 211
212 self.__connectionState = IrcWidget.ServerConnecting 212 self.__connectionState = IrcWidget.ServerConnecting
213 if useSSL: 213 if useSSL:
214 self.networkWidget.addServerMessage( 214 self.networkWidget.addServerMessage(
215 self.trUtf8("Info"), 215 self.tr("Info"),
216 self.trUtf8("Looking for server {0} (port {1})" 216 self.tr("Looking for server {0} (port {1})"
217 " using an SSL encrypted connection" 217 " using an SSL encrypted connection"
218 "...").format(self.__server.getName(), 218 "...").format(self.__server.getName(),
219 self.__server.getPort())) 219 self.__server.getPort()))
220 self.__socket.connectToHostEncrypted( 220 self.__socket.connectToHostEncrypted(
221 self.__server.getName(), self.__server.getPort()) 221 self.__server.getName(), self.__server.getPort())
222 else: 222 else:
223 self.networkWidget.addServerMessage( 223 self.networkWidget.addServerMessage(
224 self.trUtf8("Info"), 224 self.tr("Info"),
225 self.trUtf8( 225 self.tr(
226 "Looking for server {0} (port {1})...").format( 226 "Looking for server {0} (port {1})...").format(
227 self.__server.getName(), 227 self.__server.getName(),
228 self.__server.getPort())) 228 self.__server.getPort()))
229 self.__socket.connectToHost(self.__server.getName(), 229 self.__socket.connectToHost(self.__server.getName(),
230 self.__server.getPort()) 230 self.__server.getPort())
232 if silent: 232 if silent:
233 ok = True 233 ok = True
234 else: 234 else:
235 ok = E5MessageBox.yesNo( 235 ok = E5MessageBox.yesNo(
236 self, 236 self,
237 self.trUtf8("Disconnect from Server"), 237 self.tr("Disconnect from Server"),
238 self.trUtf8("""<p>Do you really want to disconnect from""" 238 self.tr("""<p>Do you really want to disconnect from"""
239 """ <b>{0}</b>?</p><p>All channels will be""" 239 """ <b>{0}</b>?</p><p>All channels will be"""
240 """ closed.</p>""") 240 """ closed.</p>""")
241 .format(self.__server.getName())) 241 .format(self.__server.getName()))
242 if ok: 242 if ok:
243 self.networkWidget.addServerMessage( 243 self.networkWidget.addServerMessage(
244 self.trUtf8("Info"), 244 self.tr("Info"),
245 self.trUtf8("Disconnecting from server {0}...").format( 245 self.tr("Disconnecting from server {0}...").format(
246 self.__server.getName())) 246 self.__server.getName()))
247 self.__closeAllChannels() 247 self.__closeAllChannels()
248 self.__send("QUIT :" + self.__quitMessage) 248 self.__send("QUIT :" + self.__quitMessage)
249 self.__socket and self.__socket.flush() 249 self.__socket and self.__socket.flush()
250 self.__socket and self.__socket.close() 250 self.__socket and self.__socket.close()
437 def __hostFound(self): 437 def __hostFound(self):
438 """ 438 """
439 Private slot to indicate the host was found. 439 Private slot to indicate the host was found.
440 """ 440 """
441 self.networkWidget.addServerMessage( 441 self.networkWidget.addServerMessage(
442 self.trUtf8("Info"), 442 self.tr("Info"),
443 self.trUtf8("Server found,connecting...")) 443 self.tr("Server found,connecting..."))
444 444
445 def __hostConnected(self): 445 def __hostConnected(self):
446 """ 446 """
447 Private slot to log in to the server after the connection was 447 Private slot to log in to the server after the connection was
448 established. 448 established.
449 """ 449 """
450 self.networkWidget.addServerMessage( 450 self.networkWidget.addServerMessage(
451 self.trUtf8("Info"), 451 self.tr("Info"),
452 self.trUtf8("Connected,logging in...")) 452 self.tr("Connected,logging in..."))
453 self.networkWidget.setConnected(True) 453 self.networkWidget.setConnected(True)
454 454
455 self.__registering = True 455 self.__registering = True
456 serverPassword = self.__server.getPassword() 456 serverPassword = self.__server.getPassword()
457 if serverPassword: 457 if serverPassword:
480 Private slot to indicate the host was disconnected. 480 Private slot to indicate the host was disconnected.
481 """ 481 """
482 if self.networkWidget.isConnected(): 482 if self.networkWidget.isConnected():
483 self.__closeAllChannels() 483 self.__closeAllChannels()
484 self.networkWidget.addServerMessage( 484 self.networkWidget.addServerMessage(
485 self.trUtf8("Info"), 485 self.tr("Info"),
486 self.trUtf8("Server disconnected.")) 486 self.tr("Server disconnected."))
487 self.networkWidget.setRegistered(False) 487 self.networkWidget.setRegistered(False)
488 self.networkWidget.setConnected(False) 488 self.networkWidget.setConnected(False)
489 self.__server = None 489 self.__server = None
490 self.__nickName = "" 490 self.__nickName = ""
491 self.__nickIndex = -1 491 self.__nickIndex = -1
525 if patternFunc(match): 525 if patternFunc(match):
526 break 526 break
527 else: 527 else:
528 # Oops, the message wasn't handled 528 # Oops, the message wasn't handled
529 self.networkWidget.addErrorMessage( 529 self.networkWidget.addErrorMessage(
530 self.trUtf8("Message Error"), 530 self.tr("Message Error"),
531 self.trUtf8( 531 self.tr(
532 "Unknown message received from server:" 532 "Unknown message received from server:"
533 "<br/>{0}").format(line)) 533 "<br/>{0}").format(line))
534 534
535 self.__updateUsersCount() 535 self.__updateUsersCount()
536 self.__buffer = "" 536 self.__buffer = ""
549 except IndexError: 549 except IndexError:
550 msg = match.group(3) 550 msg = match.group(3)
551 if "!" in match.group(1): 551 if "!" in match.group(1):
552 name = match.group(1).split("!", 1)[0] 552 name = match.group(1).split("!", 1)[0]
553 msg = "-{0}- {1}".format(name, msg) 553 msg = "-{0}- {1}".format(name, msg)
554 self.networkWidget.addServerMessage(self.trUtf8("Notice"), msg) 554 self.networkWidget.addServerMessage(self.tr("Notice"), msg)
555 return True 555 return True
556 elif name == "MODE": 556 elif name == "MODE":
557 self.__registering = False 557 self.__registering = False
558 if ":" in match.group(3): 558 if ":" in match.group(3):
559 # :detlev_ MODE detlev_ :+i 559 # :detlev_ MODE detlev_ :+i
560 name, modes = match.group(3).split(" :") 560 name, modes = match.group(3).split(" :")
561 sourceNick = match.group(1) 561 sourceNick = match.group(1)
562 if not self.isChannelName(name): 562 if not self.isChannelName(name):
563 if name == self.__nickName: 563 if name == self.__nickName:
564 if sourceNick == self.__nickName: 564 if sourceNick == self.__nickName:
565 msg = self.trUtf8( 565 msg = self.tr(
566 "You have set your personal modes to" 566 "You have set your personal modes to"
567 " <b>[{0}]</b>.").format(modes) 567 " <b>[{0}]</b>.").format(modes)
568 else: 568 else:
569 msg = self.trUtf8( 569 msg = self.tr(
570 "{0} has changed your personal modes to" 570 "{0} has changed your personal modes to"
571 " <b>[{1}]</b>.").format(sourceNick, modes) 571 " <b>[{1}]</b>.").format(sourceNick, modes)
572 self.networkWidget.addServerMessage( 572 self.networkWidget.addServerMessage(
573 self.trUtf8("Mode"), msg, filterMsg=False) 573 self.tr("Mode"), msg, filterMsg=False)
574 return True 574 return True
575 elif name == "PART": 575 elif name == "PART":
576 nick = match.group(1).split("!", 1)[0] 576 nick = match.group(1).split("!", 1)[0]
577 if nick == self.__nickName: 577 if nick == self.__nickName:
578 channel = match.group(3).split(None, 1)[0] 578 channel = match.group(3).split(None, 1)[0]
579 self.networkWidget.addMessage( 579 self.networkWidget.addMessage(
580 self.trUtf8("You have left channel {0}.").format(channel)) 580 self.tr("You have left channel {0}.").format(channel))
581 return True 581 return True
582 elif name == "QUIT": 582 elif name == "QUIT":
583 # don't do anything with it here 583 # don't do anything with it here
584 return True 584 return True
585 elif name == "NICK": 585 elif name == "NICK":
586 # :foo_!n=foo@foohost.bar.net NICK :newnick 586 # :foo_!n=foo@foohost.bar.net NICK :newnick
587 oldNick = match.group(1).split("!", 1)[0] 587 oldNick = match.group(1).split("!", 1)[0]
588 newNick = match.group(3).split(":", 1)[1] 588 newNick = match.group(3).split(":", 1)[1]
589 if oldNick == self.__nickName: 589 if oldNick == self.__nickName:
590 self.networkWidget.addMessage( 590 self.networkWidget.addMessage(
591 self.trUtf8("You are now known as {0}.").format(newNick)) 591 self.tr("You are now known as {0}.").format(newNick))
592 self.__nickName = newNick 592 self.__nickName = newNick
593 self.networkWidget.setNickName(newNick) 593 self.networkWidget.setNickName(newNick)
594 else: 594 else:
595 self.networkWidget.addMessage( 595 self.networkWidget.addMessage(
596 self.trUtf8("User {0} is now known as {1}.").format( 596 self.tr("User {0} is now known as {1}.").format(
597 oldNick, newNick)) 597 oldNick, newNick))
598 return True 598 return True
599 elif name == "ERROR": 599 elif name == "ERROR":
600 self.networkWidget.addErrorMessage( 600 self.networkWidget.addErrorMessage(
601 self.trUtf8("Server Error"), match.group(3).split(":", 1)[1]) 601 self.tr("Server Error"), match.group(3).split(":", 1)[1])
602 return True 602 return True
603 603
604 return False 604 return False
605 605
606 def __handleNumericMessage(self, match): 606 def __handleNumericMessage(self, match):
631 if self.__registering: 631 if self.__registering:
632 self.__handleNickInUseLogin() 632 self.__handleNickInUseLogin()
633 else: 633 else:
634 self.__handleNickInUse() 634 self.__handleNickInUse()
635 else: 635 else:
636 self.networkWidget.addServerMessage(self.trUtf8("Error"), message) 636 self.networkWidget.addServerMessage(self.tr("Error"), message)
637 637
638 return True 638 return True
639 639
640 def __handleServerReply(self, code, server, message): 640 def __handleServerReply(self, code, server, message):
641 """ 641 """
646 @param message message sent by the server (string) 646 @param message message sent by the server (string)
647 @return flag indicating, if the message was handled (boolean) 647 @return flag indicating, if the message was handled (boolean)
648 """ 648 """
649 # determine message type 649 # determine message type
650 if code in [1, 2, 3, 4]: 650 if code in [1, 2, 3, 4]:
651 msgType = self.trUtf8("Welcome") 651 msgType = self.tr("Welcome")
652 elif code == 5: 652 elif code == 5:
653 msgType = self.trUtf8("Support") 653 msgType = self.tr("Support")
654 elif code in [250, 251, 252, 253, 254, 255, 265, 266]: 654 elif code in [250, 251, 252, 253, 254, 255, 265, 266]:
655 msgType = self.trUtf8("User") 655 msgType = self.tr("User")
656 elif code in [372, 375, 376]: 656 elif code in [372, 375, 376]:
657 msgType = self.trUtf8("MOTD") 657 msgType = self.tr("MOTD")
658 elif code in [305, 306]: 658 elif code in [305, 306]:
659 msgType = self.trUtf8("Away") 659 msgType = self.tr("Away")
660 else: 660 else:
661 msgType = self.trUtf8("Info ({0})").format(code) 661 msgType = self.tr("Info ({0})").format(code)
662 662
663 # special treatment for some messages 663 # special treatment for some messages
664 if code == 375: 664 if code == 375:
665 message = self.trUtf8("Message of the day") 665 message = self.tr("Message of the day")
666 elif code == 376: 666 elif code == 376:
667 message = self.trUtf8("End of message of the day") 667 message = self.tr("End of message of the day")
668 elif code == 4: 668 elif code == 4:
669 parts = message.strip().split() 669 parts = message.strip().split()
670 message = self.trUtf8( 670 message = self.tr(
671 "Server {0} (Version {1}), User-Modes: {2}," 671 "Server {0} (Version {1}), User-Modes: {2},"
672 " Channel-Modes: {3}")\ 672 " Channel-Modes: {3}")\
673 .format(parts[1], parts[2], parts[3], parts[4]) 673 .format(parts[1], parts[2], parts[3], parts[4])
674 elif code == 265: 674 elif code == 265:
675 parts = message.strip().split() 675 parts = message.strip().split()
676 message = self.trUtf8( 676 message = self.tr(
677 "Current users on {0}: {1}, max. {2}").format( 677 "Current users on {0}: {1}, max. {2}").format(
678 server, parts[1], parts[2]) 678 server, parts[1], parts[2])
679 elif code == 266: 679 elif code == 266:
680 parts = message.strip().split() 680 parts = message.strip().split()
681 message = self.trUtf8( 681 message = self.tr(
682 "Current users on the network: {0}, max. {1}").format( 682 "Current users on the network: {0}, max. {1}").format(
683 parts[1], parts[2]) 683 parts[1], parts[2])
684 elif code == 305: 684 elif code == 305:
685 message = self.trUtf8("You are no longer marked as being away.") 685 message = self.tr("You are no longer marked as being away.")
686 elif code == 306: 686 elif code == 306:
687 message = self.trUtf8("You have been marked as being away.") 687 message = self.tr("You have been marked as being away.")
688 else: 688 else:
689 first, message = message.split(None, 1) 689 first, message = message.split(None, 1)
690 if message.startswith(":"): 690 if message.startswith(":"):
691 message = message[1:] 691 message = message[1:]
692 else: 692 else:
744 """ 744 """
745 if error == QAbstractSocket.RemoteHostClosedError: 745 if error == QAbstractSocket.RemoteHostClosedError:
746 # ignore this one, it's a disconnect 746 # ignore this one, it's a disconnect
747 if self.__sslErrorLock: 747 if self.__sslErrorLock:
748 self.networkWidget.addErrorMessage( 748 self.networkWidget.addErrorMessage(
749 self.trUtf8("SSL Error"), 749 self.tr("SSL Error"),
750 self.trUtf8( 750 self.tr(
751 """Connection to server {0} (port {1}) lost while""" 751 """Connection to server {0} (port {1}) lost while"""
752 """ waiting for user response to an SSL error.""") 752 """ waiting for user response to an SSL error.""")
753 .format(self.__server.getName(), self.__server.getPort())) 753 .format(self.__server.getName(), self.__server.getPort()))
754 self.__connectionState = IrcWidget.ServerDisconnected 754 self.__connectionState = IrcWidget.ServerDisconnected
755 elif error == QAbstractSocket.HostNotFoundError: 755 elif error == QAbstractSocket.HostNotFoundError:
756 self.networkWidget.addErrorMessage( 756 self.networkWidget.addErrorMessage(
757 self.trUtf8("Socket Error"), 757 self.tr("Socket Error"),
758 self.trUtf8( 758 self.tr(
759 "The host was not found. Please check the host name" 759 "The host was not found. Please check the host name"
760 " and port settings.")) 760 " and port settings."))
761 elif error == QAbstractSocket.ConnectionRefusedError: 761 elif error == QAbstractSocket.ConnectionRefusedError:
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 connection was refused by the peer. Please check the" 765 "The connection was refused by the peer. Please check the"
766 " host name and port settings.")) 766 " host name and port settings."))
767 elif error == QAbstractSocket.SslHandshakeFailedError: 767 elif error == QAbstractSocket.SslHandshakeFailedError:
768 self.networkWidget.addErrorMessage( 768 self.networkWidget.addErrorMessage(
769 self.trUtf8("Socket Error"), 769 self.tr("Socket Error"),
770 self.trUtf8("The SSL handshake failed.")) 770 self.tr("The SSL handshake failed."))
771 else: 771 else:
772 if self.__socket: 772 if self.__socket:
773 self.networkWidget.addErrorMessage( 773 self.networkWidget.addErrorMessage(
774 self.trUtf8("Socket Error"), 774 self.tr("Socket Error"),
775 self.trUtf8( 775 self.tr(
776 "The following network error occurred:<br/>{0}") 776 "The following network error occurred:<br/>{0}")
777 .format(self.__socket.errorString())) 777 .format(self.__socket.errorString()))
778 else: 778 else:
779 self.networkWidget.addErrorMessage( 779 self.networkWidget.addErrorMessage(
780 self.trUtf8("Socket Error"), 780 self.tr("Socket Error"),
781 self.trUtf8("A network error occurred.")) 781 self.tr("A network error occurred."))
782 782
783 def __sslErrors(self, errors): 783 def __sslErrors(self, errors):
784 """ 784 """
785 Private slot to handle SSL errors. 785 Private slot to handle SSL errors.
786 786
788 """ 788 """
789 ignored, defaultChanged = self.__sslErrorHandler.sslErrors( 789 ignored, defaultChanged = self.__sslErrorHandler.sslErrors(
790 errors, self.__server.getName(), self.__server.getPort()) 790 errors, self.__server.getName(), self.__server.getPort())
791 if ignored == E5SslErrorHandler.NotIgnored: 791 if ignored == E5SslErrorHandler.NotIgnored:
792 self.networkWidget.addErrorMessage( 792 self.networkWidget.addErrorMessage(
793 self.trUtf8("SSL Error"), 793 self.tr("SSL Error"),
794 self.trUtf8( 794 self.tr(
795 """Could not connect to {0} (port {1}) using an SSL""" 795 """Could not connect to {0} (port {1}) using an SSL"""
796 """ encrypted connection. Either the server does not""" 796 """ encrypted connection. Either the server does not"""
797 """ support SSL (did you use the correct port?) or""" 797 """ support SSL (did you use the correct port?) or"""
798 """ you rejected the certificate.""") 798 """ you rejected the certificate.""")
799 .format(self.__server.getName(), self.__server.getPort())) 799 .format(self.__server.getName(), self.__server.getPort()))
802 if defaultChanged: 802 if defaultChanged:
803 self.__socket.setSslConfiguration( 803 self.__socket.setSslConfiguration(
804 QSslConfiguration.defaultConfiguration()) 804 QSslConfiguration.defaultConfiguration())
805 if ignored == E5SslErrorHandler.UserIgnored: 805 if ignored == E5SslErrorHandler.UserIgnored:
806 self.networkWidget.addErrorMessage( 806 self.networkWidget.addErrorMessage(
807 self.trUtf8("SSL Error"), 807 self.tr("SSL Error"),
808 self.trUtf8( 808 self.tr(
809 """The SSL certificate for the server {0} (port {1})""" 809 """The SSL certificate for the server {0} (port {1})"""
810 """ failed the authenticity check. SSL errors""" 810 """ failed the authenticity check. SSL errors"""
811 """ were accepted by you.""") 811 """ were accepted by you.""")
812 .format(self.__server.getName(), self.__server.getPort())) 812 .format(self.__server.getName(), self.__server.getPort()))
813 if self.__connectionState == IrcWidget.ServerConnecting: 813 if self.__connectionState == IrcWidget.ServerConnecting:
860 vers = "" 860 vers = ""
861 else: 861 else:
862 vers = " " + Version 862 vers = " " + Version
863 msg = "Eric IRC client{0}, {1}".format(vers, Copyright) 863 msg = "Eric IRC client{0}, {1}".format(vers, Copyright)
864 self.networkWidget.addServerMessage( 864 self.networkWidget.addServerMessage(
865 self.trUtf8("CTCP"), 865 self.tr("CTCP"),
866 self.trUtf8("Received Version request from {0}.").format( 866 self.tr("Received Version request from {0}.").format(
867 match.group(1))) 867 match.group(1)))
868 self.__sendCtcpReply(match.group(1), "VERSION " + msg) 868 self.__sendCtcpReply(match.group(1), "VERSION " + msg)
869 elif ctcpRequest == "ping": 869 elif ctcpRequest == "ping":
870 self.networkWidget.addServerMessage( 870 self.networkWidget.addServerMessage(
871 self.trUtf8("CTCP"), 871 self.tr("CTCP"),
872 self.trUtf8( 872 self.tr(
873 "Received CTCP-PING request from {0}," 873 "Received CTCP-PING request from {0},"
874 " sending answer.").format(match.group(1))) 874 " sending answer.").format(match.group(1)))
875 self.__sendCtcpReply( 875 self.__sendCtcpReply(
876 match.group(1), "PING {0}".format(ctcpArg)) 876 match.group(1), "PING {0}".format(ctcpArg))
877 elif ctcpRequest == "clientinfo": 877 elif ctcpRequest == "clientinfo":
878 self.networkWidget.addServerMessage( 878 self.networkWidget.addServerMessage(
879 self.trUtf8("CTCP"), 879 self.tr("CTCP"),
880 self.trUtf8( 880 self.tr(
881 "Received CTCP-CLIENTINFO request from {0}," 881 "Received CTCP-CLIENTINFO request from {0},"
882 " sending answer.").format(match.group(1))) 882 " sending answer.").format(match.group(1)))
883 self.__sendCtcpReply( 883 self.__sendCtcpReply(
884 match.group(1), 884 match.group(1),
885 "CLIENTINFO CLIENTINFO PING VERSION") 885 "CLIENTINFO CLIENTINFO PING VERSION")
886 else: 886 else:
887 self.networkWidget.addServerMessage( 887 self.networkWidget.addServerMessage(
888 self.trUtf8("CTCP"), 888 self.tr("CTCP"),
889 self.trUtf8( 889 self.tr(
890 "Received unknown CTCP-{0} request from {1}.") 890 "Received unknown CTCP-{0} request from {1}.")
891 .format(ctcpRequest, match.group(1))) 891 .format(ctcpRequest, match.group(1)))
892 return True 892 return True
893 893
894 return False 894 return False
899 """ 899 """
900 for channel in self.__channelList: 900 for channel in self.__channelList:
901 index = self.channelsWidget.indexOf(channel) 901 index = self.channelsWidget.indexOf(channel)
902 self.channelsWidget.setTabText( 902 self.channelsWidget.setTabText(
903 index, 903 index,
904 self.trUtf8("{0} ({1})", "channel name, users count").format( 904 self.tr("{0} ({1})", "channel name, users count").format(
905 channel.name(), channel.getUsersCount())) 905 channel.name(), channel.getUsersCount()))
906 906
907 def __handleNickInUseLogin(self): 907 def __handleNickInUseLogin(self):
908 """ 908 """
909 Private method to handle a 443 server error at login. 909 Private method to handle a 443 server error at login.
913 nick = self.__ircNetworkManager.getIdentity(self.__identityName)\ 913 nick = self.__ircNetworkManager.getIdentity(self.__identityName)\
914 .getNickNames()[self.__nickIndex] 914 .getNickNames()[self.__nickIndex]
915 self.__nickName = nick 915 self.__nickName = nick
916 except IndexError: 916 except IndexError:
917 self.networkWidget.addServerMessage( 917 self.networkWidget.addServerMessage(
918 self.trUtf8("Critical"), 918 self.tr("Critical"),
919 self.trUtf8( 919 self.tr(
920 "No nickname acceptable to the server configured" 920 "No nickname acceptable to the server configured"
921 " for <b>{0}</b>. Disconnecting...") 921 " for <b>{0}</b>. Disconnecting...")
922 .format(self.__userName), 922 .format(self.__userName),
923 filterMsg=False) 923 filterMsg=False)
924 self.__connectNetwork("", False, silent=True) 924 self.__connectNetwork("", False, silent=True)
932 def __handleNickInUse(self): 932 def __handleNickInUse(self):
933 """ 933 """
934 Private method to handle a 443 server error. 934 Private method to handle a 443 server error.
935 """ 935 """
936 self.networkWidget.addServerMessage( 936 self.networkWidget.addServerMessage(
937 self.trUtf8("Critical"), 937 self.tr("Critical"),
938 self.trUtf8("The given nickname is already in use.")) 938 self.tr("The given nickname is already in use."))
939 939
940 def __changeNick(self, nick): 940 def __changeNick(self, nick):
941 """ 941 """
942 Private slot to use a new nick name. 942 Private slot to use a new nick name.
943 943

eric ide

mercurial