ExtensionIrc/IrcChannelWidget.py

Sat, 03 May 2025 16:23:18 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 03 May 2025 16:23:18 +0200
changeset 10
f98d019645f9
parent 2
5b635dc8895f
permissions
-rw-r--r--

Created global tag <release-10.0.1>.

2
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2012 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the IRC channel widget.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import pathlib
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import re
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from itertools import zip_longest
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from PyQt6.QtCore import (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 QCoreApplication,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 QDateTime,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 QPoint,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 QTimer,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 QUrl,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 pyqtSignal,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 pyqtSlot,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 from PyQt6.QtGui import QDesktopServices, QIcon, QPainter, QTextCursor
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 from PyQt6.QtWidgets import (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 QApplication,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 QInputDialog,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 QLineEdit,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 QListWidgetItem,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 QMenu,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 QWidget,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 from eric7 import EricUtilities
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 from eric7.__version__ import Version
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 from eric7.EricGui import EricPixmapCache
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 from eric7.EricWidgets import EricFileDialog, EricMessageBox
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 from eric7.EricWidgets.EricApplication import ericApp
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 from eric7.SystemUtilities import OSUtilities
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 from eric7.UI.Info import Copyright
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 from PluginExtensionIrc import ircExtensionPluginObject
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 from .IrcUtilities import getChannelModesDict, ircFilter, ircTimestamp
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 from .Ui_IrcChannelWidget import Ui_IrcChannelWidget
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 class IrcUserItem(QListWidgetItem):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 Class implementing a list widget item containing an IRC channel user.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 Normal = 0x00 # no privileges
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 Operator = 0x01 # channel operator
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 Voice = 0x02 # voice operator
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 Admin = 0x04 # administrator
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 Halfop = 0x08 # half operator
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 Owner = 0x10 # channel owner
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 Away = 0x80 # user away
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 PrivilegeMapping = {
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 "a": Away,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 "o": Operator,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 "O": Owner,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 "v": Voice,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 }
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 def __init__(self, name, parent=None):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 Constructor
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 @param name string with user name and privilege prefix
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @param parent reference to the parent widget
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @type QListWidget or QListWidgetItem
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 super().__init__(name, parent)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 self.__privilege = IrcUserItem.Normal
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 self.__name = name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.__ignored = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 self.__setText()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 self.__setIcon()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 def name(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 Public method to get the user name.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 @return user name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 @rtype str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 return self.__name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 def setName(self, name):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 Public method to set a new nick name.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 @param name new nick name for the user
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 self.__name = name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 self.__setText()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 def changePrivilege(self, privilege):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 Public method to set or unset a user privilege.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 @param privilege privilege to set or unset
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 oper = privilege[0]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 priv = privilege[1]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 if priv in IrcUserItem.PrivilegeMapping:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 if oper == "+":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 self.__privilege |= IrcUserItem.PrivilegeMapping[priv]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 elif oper == "-":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 self.__privilege &= ~IrcUserItem.PrivilegeMapping[priv]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 self.__setIcon()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 def clearPrivileges(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 Public method to clear the user privileges.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 self.__privilege = IrcUserItem.Normal
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 self.__setIcon()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 def __setText(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 Private method to set the user item text.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 if self.__ignored:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 self.setText(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 QCoreApplication.translate("IrcUserItem", "{0} (ignored)").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 self.__name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 self.setText(self.__name)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 def __setIcon(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 Private method to set the icon dependent on user privileges.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 # step 1: determine the icon
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 if self.__privilege & IrcUserItem.Voice:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 icon = ircExtensionPluginObject.getIcon("ircVoice")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 elif self.__privilege & IrcUserItem.Owner:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 icon = ircExtensionPluginObject.getIcon("ircOwner")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 elif self.__privilege & IrcUserItem.Operator:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 icon = ircExtensionPluginObject.getIcon("ircOp")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 elif self.__privilege & IrcUserItem.Halfop:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 icon = ircExtensionPluginObject.getIcon("ircHalfop")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 elif self.__privilege & IrcUserItem.Admin:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 icon = ircExtensionPluginObject.getIcon("ircAdmin")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 icon = ircExtensionPluginObject.getIcon("ircNormal")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 if self.__privilege & IrcUserItem.Away:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 icon = self.__awayIcon(icon)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 # step 2: set the icon
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 self.setIcon(icon)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 def __awayIcon(self, icon):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 Private method to convert an icon to an away icon.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 @param icon icon to be converted
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 @type QIcon
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 @return away icon
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 @rtype QIcon
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 pix1 = icon.pixmap(16, 16)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 pix2 = ircExtensionPluginObject.getPixmap("ircAway")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 painter = QPainter(pix1)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 painter.drawPixmap(0, 0, pix2)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 painter.end()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 return QIcon(pix1)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 def parseWhoFlags(self, flags):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 Public method to parse the user flags reported by a WHO command.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 @param flags user flags as reported by WHO
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 # H The user is not away.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 # G The user is set away.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 # * The user is an IRC operator.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 # @ The user is a channel op in the channel listed in the first field.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 # + The user is voiced in the channel listed.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 if flags.endswith("@"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 privilege = IrcUserItem.Operator
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 elif flags.endswith("+"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 privilege = IrcUserItem.Voice
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 privilege = IrcUserItem.Normal
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 if "*" in flags:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 privilege = IrcUserItem.Admin
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 if flags.startswith("G"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 privilege |= IrcUserItem.Away
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 self.__privilege = privilege
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 self.__setIcon()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 def canChangeTopic(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 Public method to check, if the user is allowed to change the topic.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 @return flag indicating that the topic can be changed
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 return (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 bool(self.__privilege & IrcUserItem.Operator)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 or bool(self.__privilege & IrcUserItem.Admin)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 or bool(self.__privilege & IrcUserItem.Owner)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 def setIgnored(self, ignored):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 Public method to set the user status to ignored.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 @param ignored flag indicating the new ignored status
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 @type bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 self.__ignored = ignored
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 self.__setText()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 def isIgnored(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 Public method to check, if this user is ignored.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 @return flag indicating the ignored status
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 return self.__ignored
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 class IrcChannelWidget(QWidget, Ui_IrcChannelWidget):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 Class implementing the IRC channel widget.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 @signal sendData(str) emitted to send a message to the channel
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 @signal sendCtcpRequest(str, str, str) emitted to send a CTCP request
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 @signal sendCtcpReply(str, str) emitted to send a CTCP reply
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 @signal channelClosed(str) emitted after the user has left the channel
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 @signal openPrivateChat(str) emitted to open a "channel" for private
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 messages
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 @signal awayCommand(str) emitted to set the away status via the /away
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 command
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 @signal leaveChannels(list) emitted to leave a list of channels
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 @signal leaveAllChannels() emitted to leave all channels
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 sendData = pyqtSignal(str)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 sendCtcpRequest = pyqtSignal(str, str, str)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 sendCtcpReply = pyqtSignal(str, str)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 channelClosed = pyqtSignal(str)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 openPrivateChat = pyqtSignal(str)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 awayCommand = pyqtSignal(str)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 leaveChannels = pyqtSignal(list)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 leaveAllChannels = pyqtSignal()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 UrlRe = re.compile(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 r"""((?:http|ftp|https):\/\/[\w\-_]+(?:\.[\w\-_]+)+"""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 r"""(?:[\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?)"""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 JoinIndicator = "--&gt;"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 LeaveIndicator = "&lt;--"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 MessageIndicator = "***"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 def __init__(self, parent=None):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 Constructor
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 @param parent reference to the parent widget
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 @type QWidget
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 super().__init__(parent)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 self.setupUi(self)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 self.__ui = ericApp().getObject("UserInterface")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 self.__ircWidget = parent
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 self.editTopicButton.setIcon(ircExtensionPluginObject.getIcon("ircEditTopic"))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 self.editTopicButton.hide()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 height = self.usersList.height() + self.messages.height()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 self.splitter.setSizes([int(height * 0.3), int(height * 0.7)])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
289 self.__initMessagesMenu()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 self.__initUsersMenu()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 self.__name = ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 self.__userName = ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 self.__partMessage = ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 self.__prefixToPrivilege = {}
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 self.__private = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 self.__privatePartner = ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 self.__whoIsNick = ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 self.__markerLine = ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301 self.__hidden = True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 self.__serviceNamesLower = ["nickserv", "chanserv", "memoserv"]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 self.__patterns = [
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 # :foo_!n=foo@foohost.bar.net PRIVMSG #eric-ide :some long message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 # :foo_!n=foo@foohost.bar.net PRIVMSG bar_ :some long message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308 (re.compile(r":([^!]+)!([^ ]+)\sPRIVMSG\s([^ ]+)\s:(.*)"), self.__message),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 # :foo_!n=foo@foohost.bar.net JOIN :#eric-ide
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 (re.compile(r":([^!]+)!([^ ]+)\sJOIN\s:?([^ ]+)"), self.__userJoin),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 # :foo_!n=foo@foohost.bar.net PART #eric-ide :part message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 (re.compile(r":([^!]+).*\sPART\s([^ ]+)\s:(.*)"), self.__userPart),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 # :foo_!n=foo@foohost.bar.net PART #eric-ide
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 (re.compile(r":([^!]+).*\sPART\s([^ ]+)\s*"), self.__userPart),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 # :foo_!n=foo@foohost.bar.net QUIT :quit message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 (re.compile(r":([^!]+).*\sQUIT\s:(.*)"), self.__userQuit),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 # :foo_!n=foo@foohost.bar.net QUIT
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 (re.compile(r":([^!]+).*\sQUIT\s*"), self.__userQuit),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 # :foo_!n=foo@foohost.bar.net NICK :newnick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 (re.compile(r":([^!]+).*\sNICK\s:(.*)"), self.__userNickChange),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 # :foo_!n=foo@foohost.bar.net MODE #eric-ide +o foo_
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 re.compile(r":([^!]+).*\sMODE\s([^ ]+)\s([+-][ovO]+)\s([^ ]+).*"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 self.__setUserPrivilege,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 # :cameron.libera.chat MODE #eric-ide +ns
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 (re.compile(r":([^ ]+)\sMODE\s([^ ]+)\s(.+)"), self.__updateChannelModes),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 # :foo_!n=foo@foohost.bar.net TOPIC #eric-ide :eric - Python IDE
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 (re.compile(r":.*\sTOPIC\s([^ ]+)\s:(.*)"), self.__setTopic),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 # :sturgeon.libera.chat 301 foo_ bar :Gone away for now
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 (re.compile(r":.*\s301\s([^ ]+)\s([^ ]+)\s:(.+)"), self.__userAway),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 # :sturgeon.libera.chat 315 foo_ #eric-ide :End of /WHO list.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 (re.compile(r":.*\s315\s[^ ]+\s([^ ]+)\s:(.*)"), self.__whoEnd),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 # :zelazny.libera.chat 324 foo_ #eric-ide +cnt
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 (re.compile(r":.*\s324\s.*\s([^ ]+)\s(.+)"), self.__channelModes),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 # :zelazny.libera.chat 328 foo_ #eric-ide :http://www.bugger.com/
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 (re.compile(r":.*\s328\s.*\s([^ ]+)\s:(.+)"), self.__channelUrl),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 # :zelazny.libera.chat 329 foo_ #eric-ide 1353001005
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 (re.compile(r":.*\s329\s.*\s([^ ]+)\s(.+)"), self.__channelCreated),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 # :zelazny.libera.chat 332 foo_ #eric-ide :eric support channel
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 (re.compile(r":.*\s332\s.*\s([^ ]+)\s:(.*)"), self.__setTopic),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 # :zelazny.libera.chat foo_ 333 #eric-ide foo 1353089020
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 (re.compile(r":.*\s333\s.*\s([^ ]+)\s([^ ]+)\s(\d+)"), self.__topicCreated),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344 # :cameron.libera.chat 352 detlev_ #eric-ide ~foo foohost.bar.net
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345 # cameron.libera.chat foo_ H :0 Foo Bar
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 re.compile(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 r":.*\s352\s[^ ]+\s([^ ]+)\s([^ ]+)\s([^ ]+)\s[^ ]+\s([^ ]+)"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 r"\s([^ ]+)\s:\d+\s(.*)"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 self.__whoEntry,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
353 # :zelazny.libera.chat 353 foo_ @ #eric-ide :@user1 +user2 user3
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 (re.compile(r":.*\s353\s.*\s.\s([^ ]+)\s:(.*)"), self.__userList),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 # :sturgeon.libera.chat 354 foo_ 42 ChanServ H@
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 (re.compile(r":.*\s354\s[^ ]+\s42\s([^ ]+)\s(.*)"), self.__autoWhoEntry),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 # :zelazny.libera.chat 366 foo_ #eric-ide :End of /NAMES list.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 (re.compile(r":.*\s366\s.*\s([^ ]+)\s:(.*)"), self.__ignore),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 # :sturgeon.libera.chat 704 foo_ index :Help topics available:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360 (re.compile(r":.*\s70[456]\s[^ ]+\s([^ ]+)\s:(.*)"), self.__help),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 # WHOIS replies
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362 # :sturgeon.libera.chat 311 foo_ bar ~bar barhost.foo.net * :Bar
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 re.compile(r":.*\s311\s[^ ]+\s([^ ]+)\s([^ ]+)\s([^ ]+)\s\*\s:(.*)"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 self.__whoIsUser,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 # :sturgeon.libera.chat 319 foo_ bar :@#eric-ide
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 (re.compile(r":.*\s319\s[^ ]+\s([^ ]+)\s:(.*)"), self.__whoIsChannels),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 # :sturgeon.libera.chat 312 foo_ bar sturgeon.libera.chat :London
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371 re.compile(r":.*\s312\s[^ ]+\s([^ ]+)\s([^ ]+)\s:(.*)"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 self.__whoIsServer,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 # :sturgeon.libera.chat 671 foo_ bar :is using a secure connection
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 (re.compile(r":.*\s671\s[^ ]+\s([^ ]+)\s:.*"), self.__whoIsSecure),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 # :sturgeon.libera.chat 317 foo_ bar 3758 1355046912 :seconds
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 # idle, signon time
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 re.compile(r":.*\s317\s[^ ]+\s([^ ]+)\s(\d+)\s(\d+)\s:.*"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 self.__whoIsIdle,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 # :sturgeon.libera.chat 330 foo_ bar bar :is logged in as
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 re.compile(r":.*\s330\s[^ ]+\s([^ ]+)\s([^ ]+)\s:.*"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385 self.__whoIsAccount,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
386 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
387 # :sturgeon.libera.chat 318 foo_ bar :End of /WHOIS list.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388 (re.compile(r":.*\s318\s[^ ]+\s([^ ]+)\s:(.*)"), self.__whoIsEnd),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 # :sturgeon.libera.chat 307 foo_ bar :is an identified user
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 (re.compile(r":.*\s307\s[^ ]+\s([^ ]+)\s:(.*)"), self.__whoIsIdentify),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 # :sturgeon.libera.chat 320 foo_ bar :is an identified user
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
392 (re.compile(r":.*\s320\s[^ ]+\s([^ ]+)\s:(.*)"), self.__whoIsIdentify),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393 # :sturgeon.libera.chat 310 foo_ bar :is available for help
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 (re.compile(r":.*\s310\s[^ ]+\s([^ ]+)\s:(.*)"), self.__whoIsHelper),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395 # :sturgeon.libera.chat 338 foo_ bar real.ident@real.host
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
396 # 12.34.56.78 :Actual user@host, Actual IP
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
397 (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
398 re.compile(r":.*\s338\s[^ ]+\s([^ ]+)\s([^ ]+)\s([^ ]+)\s:.*"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399 self.__whoIsActually,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
400 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401 # :sturgeon.libera.chat 313 foo_ bar :is an IRC Operator
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
402 (re.compile(r":.*\s313\s[^ ]+\s([^ ]+)\s:(.*)"), self.__whoIsOperator),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403 # :sturgeon.libera.chat 378 foo_ bar :is connecting from
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404 # *@mnch-4d044d5a.pool.mediaWays.net 77.4.77.90
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 re.compile(r":.*\s378\s[^ ]+\s([^ ]+)\s:.*\s([^ ]+)\s([^ ]+)"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 self.__whoIsConnection,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 ]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411 self.__autoWhoTemplate = "WHO {0} %tnf,42"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 self.__autoWhoTimer = QTimer()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413 self.__autoWhoTimer.setSingleShot(True)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414 self.__autoWhoTimer.timeout.connect(self.__sendAutoWhoCommand)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415 self.__autoWhoRequested = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 @pyqtSlot()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418 def on_messageEdit_returnPressed(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
420 Private slot to send a message to the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
421 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 msg = self.messageEdit.text()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 if msg:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 self.__processUserMessage(msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
426 def __processUserMessage(self, msg):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
427 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 Private method to process a message entered by the user or via the
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
429 user list context menu.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 @param msg message to be processed
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
432 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 self.messages.append(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
435 '<font color="{0}">{2} <b>&lt;</b><font color="{1}">{3}</font>'
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 "<b>&gt;</b> {4}</font>".format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437 ircExtensionPluginObject.getPreferences("ChannelMessageColour"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 ircExtensionPluginObject.getPreferences("OwnNickColour"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439 ircTimestamp(),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 self.__userName,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
441 EricUtilities.html_encode(msg),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
443 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
444
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
445 if msg.startswith("/"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
446 if self.__private:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
447 EricMessageBox.information(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
448 self,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
449 self.tr("Send Message"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
450 self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
451 """Messages starting with a '/' are not allowed"""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
452 """ in private chats."""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
453 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
454 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
455 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
456 sendData = True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
457 # flag set to False, if command was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
458
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
459 msgList = msg.split()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
460 cmd = msgList[0][1:].upper()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
461 if cmd in ["MSG", "QUERY"]:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
462 cmd = "PRIVMSG"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
463 if len(msgList) > 1:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
464 if msgList[1].strip().lower() in self.__serviceNamesLower:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
465 msg = (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
466 "PRIVMSG "
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
467 + msgList[1].strip().lower()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
468 + " :"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
469 + " ".join(msgList[2:])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
470 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
471 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
472 msg = "PRIVMSG {0} :{1}".format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
473 msgList[1], " ".join(msgList[2:])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
474 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
475 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
476 msgList[0] = cmd
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
477 msg = " ".join(msgList)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
478 elif cmd == "NOTICE":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 if len(msgList) > 2:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
480 msg = "NOTICE {0} :{1}".format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
481 msgList[1], " ".join(msgList[2:])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
482 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
483 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
484 msg = "NOTICE {0}".format(" ".join(msgList[1:]))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
485 elif cmd == "PING":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
486 receiver = msgList[1]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
487 msg = "PING {0} "
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
488 self.sendCtcpRequest.emit(receiver, "PING", "")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
489 sendData = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
490 elif cmd == "IGNORE":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
491 sendData = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
492 if len(msgList) > 1:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
493 if msgList[1] == "-r":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
494 ignored = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495 userNamesList = msgList[2:]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
496 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
497 ignored = True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
498 userNamesList = msgList[1:]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
499 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
500 userNamesList = []
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
501 userNames = ",".join(u.rstrip(",") for u in userNamesList).split(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
502 ","
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
503 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
504 for userName in userNames:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
505 itm = self.__findUser(userName)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
506 if itm:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
507 itm.setIgnored(ignored)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
508 elif cmd == "UNIGNORE":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
509 sendData = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
510 if len(msgList) > 1:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
511 userNamesList = msgList[1:]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
512 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
513 userNamesList = []
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
514 userNames = ",".join(u.rstrip(",") for u in userNamesList).split(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
515 ","
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
516 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
517 for userName in userNames:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
518 itm = self.__findUser(userName)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
519 if itm:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
520 itm.setIgnored(False)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
521 elif cmd == "AWAY":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
522 sendData = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
523 if len(msgList) > 1:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
524 msg = " ".join(msgList[1:])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
525 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
526 msg = ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
527 self.awayCommand.emit(msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
528 elif cmd == "JOIN":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
529 sendData = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
530 if len(msgList) > 1:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
531 channels = msgList[1].split(",")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
532 if len(msgList) > 2:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
533 keys = msgList[2].split(",")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
534 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
535 keys = []
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
536 for channel, key in zip_longest(channels, keys, fillvalue=""):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
537 self.__ircWidget.joinChannel(channel, key)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
538 elif cmd == "PART":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
539 sendData = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
540 if len(msgList) == 1:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
541 self.leaveChannel()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
542 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
543 self.leaveChannels.emit(msgList[1:])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
544 elif cmd == "PARTALL":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
545 sendData = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
546 self.leaveAllChannels.emit()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
547 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
548 msg = msg[1:]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
549 if sendData:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
550 self.sendData.emit(msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
551 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 if self.__private:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
553 self.sendData.emit("PRIVMSG " + self.__privatePartner + " :" + msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
554 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
555 self.sendData.emit("PRIVMSG " + self.__name + " :" + msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
556
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
557 self.messageEdit.clear()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
558 self.unsetMarkerLine()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
559
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
560 def requestLeave(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
561 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
562 Public method to leave the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
563 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
564 ok = EricMessageBox.yesNo(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
565 self,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
566 self.tr("Leave IRC channel"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
567 self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
568 """Do you really want to leave the IRC channel <b>{0}</b>?"""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
569 ).format(self.__name),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
570 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
571 if ok:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
572 self.leaveChannel()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
573
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
574 def leaveChannel(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
575 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
576 Public slot to leave the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
577 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
578 if not self.__private:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
579 self.sendData.emit("PART " + self.__name + " :" + self.__partMessage)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
580 self.channelClosed.emit(self.__name)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
581
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
582 def name(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
583 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
584 Public method to get the name of the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
585
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
586 @return name of the channel
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
587 @rtype str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
588 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
589 return self.__name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
590
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
591 def setName(self, name):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
592 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
593 Public method to set the name of the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
594
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
595 @param name of the channel
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
596 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
597 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
598 self.__name = name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
599
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
600 def getUsersCount(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
601 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
602 Public method to get the users count of the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
603
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
604 @return users count of the channel
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
605 @rtype int
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
606 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
607 return self.usersList.count()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
608
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
609 def userName(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
610 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
611 Public method to get the nick name of the user.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
612
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
613 @return nick name of the user
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
614 @rtype str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
615 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
616 return self.__userName
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
617
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
618 def setUserName(self, name):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
619 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
620 Public method to set the user name for the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
621
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
622 @param name user name for the channel
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
623 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
624 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
625 self.__userName = name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
626
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
627 def partMessage(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
628 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
629 Public method to get the part message.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
630
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
631 @return part message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
632 @rtype str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
633 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
634 return self.__partMessage
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
635
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
636 def setPartMessage(self, message):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
637 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
638 Public method to set the part message.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
639
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
640 @param message message to be used for PART messages
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
641 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
642 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
643 self.__partMessage = message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
644
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
645 def setPrivate(self, private, partner=""):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
646 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
647 Public method to set the private chat mode.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
648
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
649 @param private flag indicating private chat mode
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
650 @type bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
651 @param partner name of the partner user
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
652 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
653 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
654 self.__private = private
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
655 self.__privatePartner = partner
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
656 self.editTopicButton.setEnabled(private)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
657
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
658 def setPrivateInfo(self, infoText):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
660 Public method to set some info text for private chat mode.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
661
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
662 @param infoText info text to be shown
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
663 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
664 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
665 if self.__private:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
666 self.topicLabel.setText(infoText)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
667
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
668 def handleMessage(self, line):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
669 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
670 Public method to handle the message sent by the server.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
671
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
672 @param line server message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
673 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
674 @return flag indicating, if the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
675 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
676 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
677 for patternRe, patternFunc in self.__patterns:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
678 match = patternRe.match(line)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
679 if match is not None and patternFunc(match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
680 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
681
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
682 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
683
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
684 def __message(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
685 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
686 Private method to handle messages to the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
687
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
688 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
689 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
690 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
691 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
692 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
693 # group(1) sender user name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
694 # group(2) sender user@host
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
695 # group(3) target nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
696 # group(4) message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
697 if match.group(3).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
698 senderName = match.group(1)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
699 itm = self.__findUser(senderName)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
700 if itm and itm.isIgnored():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
701 # user should be ignored
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
702 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
703
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
704 if match.group(4).startswith("\x01"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
705 return self.__handleCtcp(match)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
706
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
707 self.addMessage(senderName, match.group(4))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
708 if self.__private and not self.topicLabel.text():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
709 self.setPrivateInfo("{0} - {1}".format(match.group(1), match.group(2)))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
710 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
711
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
712 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
713
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
714 def addMessage(self, sender, msg):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
715 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
716 Public method to add a message from external.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
717
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
718 @param sender nick name of the sender
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
719 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
720 @param msg message received from sender
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
721 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
722 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
723 self.__appendMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724 '<font color="{0}">{2} <b>&lt;</b><font color="{1}">{3}</font>'
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 "<b>&gt;</b> {4}</font>".format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
726 ircExtensionPluginObject.getPreferences("ChannelMessageColour"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
727 ircExtensionPluginObject.getPreferences("NickColour"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
728 ircTimestamp(),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
729 sender,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
730 ircFilter(msg),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
732 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
733 if ircExtensionPluginObject.getPreferences("ShowNotifications"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
734 if ircExtensionPluginObject.getPreferences("NotifyMessage"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
735 self.__ui.showNotification(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
736 ircExtensionPluginObject.getPixmap("irc48"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
737 self.tr("Channel Message"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
738 msg,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
739 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
740 elif (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
741 ircExtensionPluginObject.getPreferences("NotifyNick")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
742 and self.__userName.lower() in msg.lower()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
743 ):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
744 self.__ui.showNotification(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
745 ircExtensionPluginObject.getPixmap("irc48"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
746 self.tr("Nick mentioned"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
747 msg,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
748 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
749
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
750 def addUsers(self, users):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
751 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
752 Public method to add users to the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
753
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
754 @param users list of user names to add
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
755 @type list of str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
756 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
757 for user in users:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
758 itm = self.__findUser(user)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
759 if itm is None:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
760 IrcUserItem(name=user, parent=self.usersList)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
761
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
762 def __userJoin(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
763 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
764 Private method to handle a user joining the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
765
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
766 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
767 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
768 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
769 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
770 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
771 if match.group(3).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
772 if self.__userName != match.group(1):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
773 IrcUserItem(name=match.group(1), parent=self.usersList)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
774 msg = self.tr("{0} has joined the channel {1} ({2}).").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
775 match.group(1), self.__name, match.group(2)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
776 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
777 self.__addManagementMessage(IrcChannelWidget.JoinIndicator, msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
778 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
779 msg = self.tr("You have joined the channel {0} ({1}).").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
780 self.__name, match.group(2)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
781 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
782 self.__addManagementMessage(IrcChannelWidget.JoinIndicator, msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
783 if ircExtensionPluginObject.getPreferences(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
784 "ShowNotifications"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
785 ) and ircExtensionPluginObject.getPreferences("NotifyJoinPart"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
786 self.__ui.showNotification(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
787 ircExtensionPluginObject.getPixmap("irc48"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
788 self.tr("Join Channel"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
789 msg,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
790 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
791 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
792
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
793 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
794
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
795 def __userPart(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
796 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
797 Private method to handle a user leaving the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
798
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
799 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
800 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
801 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
802 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
804 if match.group(2).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
805 itm = self.__findUser(match.group(1))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
806 self.usersList.takeItem(self.usersList.row(itm))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
807 del itm
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
808 if match.lastindex == 2:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
809 msg = self.tr("{0} has left {1}.").format(match.group(1), self.__name)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
810 nmsg = msg
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
811 self.__addManagementMessage(IrcChannelWidget.LeaveIndicator, msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
812 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
813 msg = self.tr("{0} has left {1}: {2}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
814 match.group(1), self.__name, ircFilter(match.group(3))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
815 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
816 nmsg = self.tr("{0} has left {1}: {2}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
817 match.group(1), self.__name, match.group(3)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
818 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
819 self.__addManagementMessage(IrcChannelWidget.LeaveIndicator, msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
820 if ircExtensionPluginObject.getPreferences(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
821 "ShowNotifications"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
822 ) and ircExtensionPluginObject.getPreferences("NotifyJoinPart"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
823 self.__ui.showNotification(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
824 ircExtensionPluginObject.getPixmap("irc48"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
825 self.tr("Leave Channel"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
826 nmsg,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
827 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
828 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
829
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
830 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
831
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
832 def __userQuit(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
833 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
834 Private method to handle a user logging off the server.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
835
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
836 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
837 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
838 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
839 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
840 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
841 itm = self.__findUser(match.group(1))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
842 if itm:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
843 self.usersList.takeItem(self.usersList.row(itm))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
844 del itm
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
845 if match.lastindex == 1:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
846 msg = self.tr("{0} has quit {1}.").format(match.group(1), self.__name)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
847 self.__addManagementMessage(IrcChannelWidget.MessageIndicator, msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
848 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
849 msg = self.tr("{0} has quit {1}: {2}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
850 match.group(1), self.__name, ircFilter(match.group(2))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
851 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
852 self.__addManagementMessage(IrcChannelWidget.MessageIndicator, msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
853 if ircExtensionPluginObject.getPreferences(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
854 "ShowNotifications"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
855 ) and ircExtensionPluginObject.getPreferences("NotifyJoinPart"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
856 self.__ui.showNotification(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
857 ircExtensionPluginObject.getPixmap("irc48"), self.tr("Quit"), msg
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
858 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
859
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
860 # always return False for other channels and server to process
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
861 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
862
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
863 def __userNickChange(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
864 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
865 Private method to handle a nickname change of a user.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
866
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
867 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
868 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
869 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
870 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
871 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
872 itm = self.__findUser(match.group(1))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
873 if itm:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
874 itm.setName(match.group(2))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
875 if match.group(1) == self.__userName:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
876 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
877 IrcChannelWidget.MessageIndicator,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
878 self.tr("You are now known as {0}.").format(match.group(2)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
879 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
880 self.__userName = match.group(2)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
881 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
882 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
883 IrcChannelWidget.MessageIndicator,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
884 self.tr("User {0} is now known as {1}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
885 match.group(1), match.group(2)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
886 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
887 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
888
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
889 # always return False for other channels and server to process
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
890 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
891
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
892 def __userList(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
893 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
894 Private method to handle the receipt of a list of users of the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
895
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
896 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
897 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
898 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
899 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
900 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
901 if match.group(1).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
902 users = match.group(2).split()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
903 for user in users:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
904 userPrivileges, userName = self.__extractPrivilege(user)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
905 itm = self.__findUser(userName)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
906 if itm is None:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
907 itm = IrcUserItem(name=userName, parent=self.usersList)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
908 for privilege in userPrivileges:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
909 itm.changePrivilege(privilege)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
910
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
911 self.__setEditTopicButton()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
912 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
913
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
914 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
915
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
916 def __userAway(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
917 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
918 Private method to handle a topic change of the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
919
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
920 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
921 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
922 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
923 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
924 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
925 if match.group(1).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
926 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
927 self.tr("Away"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
928 self.tr("{0} is away: {1}").format(match.group(2), match.group(3)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
929 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
930 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
931
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
932 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
933
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
934 def __setTopic(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
935 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
936 Private method to handle a topic change of the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
937
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
938 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
939 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
940 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
941 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
942 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
943 if match.group(1).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
944 self.topicLabel.setText(match.group(2))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
945 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
946 IrcChannelWidget.MessageIndicator,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
947 ircFilter(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
948 self.tr('The channel topic is: "{0}".').format(match.group(2))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
949 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
950 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
951 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
952
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
953 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
954
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
955 def __topicCreated(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
956 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
957 Private method to handle a topic created message.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
958
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
959 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
960 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
961 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
962 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
963 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
964 if match.group(1).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
965 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
966 IrcChannelWidget.MessageIndicator,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
967 self.tr("The topic was set by {0} on {1}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
968 match.group(2),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
969 QDateTime.fromSecsSinceEpoch(int(match.group(3))).toString(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
970 "yyyy-MM-dd hh:mm"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
971 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
972 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
973 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
974 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
975
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
976 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
977
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
978 def __channelUrl(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
979 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
980 Private method to handle a channel URL message.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
981
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
982 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
983 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
984 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
985 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
986 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
987 if match.group(1).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
988 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
989 IrcChannelWidget.MessageIndicator,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
990 ircFilter(self.tr("Channel URL: {0}").format(match.group(2))),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
991 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
992 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
993
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
994 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
995
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
996 def __channelModes(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
997 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
998 Private method to handle a message reporting the channel modes.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
999
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1000 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1001 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1002 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1003 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1004 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1005 if match.group(1).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1006 modesDict = getChannelModesDict()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1007 modesParameters = match.group(2).split()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1008 modeString = modesParameters.pop(0)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1009 modes = []
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1010 for modeChar in modeString:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1011 if modeChar == "+":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1012 continue
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1013 elif modeChar == "k":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1014 parameter = modesParameters.pop(0)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1015 modes.append(self.tr("password protected ({0})").format(parameter))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1016 elif modeChar == "l":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1017 parameter = modesParameters.pop(0)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1018 modes.append(self.tr("limited to %n user(s)", "", int(parameter)))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1019 elif modeChar in modesDict:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1020 modes.append(modesDict[modeChar])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1021 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1022 modes.append(modeChar)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1023
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1024 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1025 IrcChannelWidget.MessageIndicator,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1026 self.tr("Channel modes: {0}.").format(", ".join(modes)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1027 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1028
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1029 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1030
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1031 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1032
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1033 def __channelCreated(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1034 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1035 Private method to handle a channel created message.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1036
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1037 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1038 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1039 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1040 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1041 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1042 if match.group(1).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1043 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1044 IrcChannelWidget.MessageIndicator,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1045 self.tr("This channel was created on {0}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1046 QDateTime.fromSecsSinceEpoch(int(match.group(2))).toString(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1047 "yyyy-MM-dd hh:mm"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1048 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1049 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1050 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1051 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1052
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1053 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1054
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1055 def __updateChannelModes(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1056 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1057 Private method to handle a message reporting the channel modes.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1058
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1059 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1060 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1061 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1062 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1063 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1064 # group(1) user or server
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1065 # group(2) channel
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1066 # group(3) modes and parameter list
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1067 if match.group(2).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1068 nick = match.group(1)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1069 modesParameters = match.group(3).split()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1070 modeString = modesParameters.pop(0)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1071 isPlus = True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1072 message = ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1073 for mode in modeString:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1074 if mode == "+":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1075 isPlus = True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1076 continue
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1077 elif mode == "-":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1078 isPlus = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1079 continue
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1080 elif mode == "a":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1081 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1082 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1083 "{0} sets the channel mode to 'anonymous'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1084 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1085 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1086 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1087 "{0} removes the 'anonymous' mode from the channel."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1088 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1089 elif mode == "b":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1090 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1091 message = self.tr("{0} sets a ban on {1}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1092 nick, modesParameters.pop(0)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1093 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1094 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1095 message = self.tr("{0} removes the ban on {1}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1096 nick, modesParameters.pop(0)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1097 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1098 elif mode == "c":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1099 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1100 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1101 "{0} sets the channel mode to 'no colors allowed'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1102 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1103 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1104 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1105 "{0} sets the channel mode to 'allow color codes'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1106 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1107 elif mode == "e":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1108 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1109 message = self.tr("{0} sets a ban exception on {1}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1110 nick, modesParameters.pop(0)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1111 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1112 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1113 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1114 "{0} removes the ban exception on {1}."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1115 ).format(nick, modesParameters.pop(0))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1116 elif mode == "i":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1117 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1118 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1119 "{0} sets the channel mode to 'invite only'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1120 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1121 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1122 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1123 "{0} removes the 'invite only' mode from the channel."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1124 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1125 elif mode == "k":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1126 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1127 message = self.tr("{0} sets the channel key to '{1}'.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1128 nick, modesParameters.pop(0)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1129 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1130 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1131 message = self.tr("{0} removes the channel key.").format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1132 elif mode == "l":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1133 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1134 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1135 "{0} sets the channel limit to %n nick(s).",
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1136 "",
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1137 int(modesParameters.pop(0)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1138 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1139 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1140 message = self.tr("{0} removes the channel limit.").format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1141 elif mode == "m":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1142 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1143 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1144 "{0} sets the channel mode to 'moderated'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1145 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1146 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1147 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1148 "{0} sets the channel mode to 'unmoderated'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1149 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1150 elif mode == "n":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1151 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1152 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1153 "{0} sets the channel mode to 'no messages from"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1154 " outside'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1155 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1156 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1157 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1158 "{0} sets the channel mode to 'allow messages"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1159 " from outside'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1160 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1161 elif mode == "p":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1162 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1163 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1164 "{0} sets the channel mode to 'private'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1165 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1166 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1167 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1168 "{0} sets the channel mode to 'public'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1169 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1170 elif mode == "q":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1171 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1172 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1173 "{0} sets the channel mode to 'quiet'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1174 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1175 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1176 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1177 "{0} removes the 'quiet' mode from the channel."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1178 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1179 elif mode == "r":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1180 continue
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1181 elif mode == "s":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1182 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1183 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1184 "{0} sets the channel mode to 'secret'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1185 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1186 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1187 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1188 "{0} sets the channel mode to 'visible'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1189 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1190 elif mode == "t":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1191 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1192 message = self.tr("{0} switches on 'topic protection'.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1193 nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1194 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1195 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1196 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1197 "{0} switches off 'topic protection'."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1198 ).format(nick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1199 elif mode == "I":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1200 if isPlus:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1201 message = self.tr("{0} sets invitation mask {1}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1202 nick, modesParameters.pop(0)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1203 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1204 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1205 message = self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1206 "{0} removes the invitation mask {1}."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1207 ).format(nick, modesParameters.pop(0))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1208
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1209 self.__addManagementMessage(self.tr("Mode"), message)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1210
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1211 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1212
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1213 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1214
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1215 def __setUserPrivilege(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1216 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1217 Private method to handle a change of user privileges for the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1218
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1219 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1220 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1221 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1222 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1223 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1224 if match.group(2).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1225 itm = self.__findUser(match.group(4))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1226 if itm:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1227 itm.changePrivilege(match.group(3))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1228 self.__setEditTopicButton()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1229 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1230 IrcChannelWidget.MessageIndicator,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1231 self.tr("{0} sets mode for {1}: {2}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1232 match.group(1), match.group(4), match.group(3)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1233 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1234 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1235 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1236
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1237 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1238
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1239 def __ignore(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1240 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1241 Private method to handle a channel message we are not interested in.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1242
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1243 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1244 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1245 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1246 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1247 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1248 if match.group(1).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1249 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1250
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1251 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1252
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1253 def __help(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1254 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1255 Private method to handle a help message.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1256
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1257 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1258 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1259 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1260 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1261 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1262 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1263 self.tr("Help"), "{0} {1}".format(match.group(1), ircFilter(match.group(2)))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1264 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1265 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1266
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1267 def __handleCtcp(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1268 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1269 Private method to handle a CTCP channel command.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1270
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1271 @param match reference to the match object
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1272 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1273 @return flag indicating, if the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1274 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1275 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1276 # group(1) sender user name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1277 # group(2) sender user@host
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1278 # group(3) target nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1279 # group(4) message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1280 if match.group(4).startswith("\x01"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1281 ctcpCommand = match.group(4)[1:].split("\x01", 1)[0]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1282 if " " in ctcpCommand:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1283 ctcpRequest, ctcpArg = ctcpCommand.split(" ", 1)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1284 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1285 ctcpRequest, ctcpArg = ctcpCommand, ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1286 ctcpRequest = ctcpRequest.lower()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1287 if ctcpRequest == "version":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1288 msg = "Eric IRC client {0}, {1}".format(Version, Copyright)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1289 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1290 self.tr("CTCP"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1291 self.tr("Received Version request from {0}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1292 match.group(1)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1293 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1294 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1295 self.sendCtcpReply.emit(match.group(1), "VERSION " + msg)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1296 elif ctcpRequest == "ping":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1297 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1298 self.tr("CTCP"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1299 self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1300 "Received CTCP-PING request from {0}, sending answer."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1301 ).format(match.group(1)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1302 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1303 self.sendCtcpReply.emit(match.group(1), "PING {0}".format(ctcpArg))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1304 elif ctcpRequest == "clientinfo":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1305 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1306 self.tr("CTCP"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1307 self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1308 "Received CTCP-CLIENTINFO request from {0}, sending answer."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1309 ).format(match.group(1)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1310 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1311 self.sendCtcpReply.emit(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1312 match.group(1), "CLIENTINFO CLIENTINFO PING VERSION"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1313 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1314 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1315 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1316 self.tr("CTCP"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1317 self.tr("Received unknown CTCP-{0} request from {1}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1318 ctcpRequest, match.group(1)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1319 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1320 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1321 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1322
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1323 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1324
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1325 def setUserPrivilegePrefix(self, prefixes):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1326 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1327 Public method to set the user privilege to prefix mapping.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1328
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1329 @param prefixes dictionary with privilege as key and prefix as value
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1330 @type dict
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1331 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1332 self.__prefixToPrivilege = {}
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1333 for privilege, prefix in prefixes.items():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1334 if prefix:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1335 self.__prefixToPrivilege[prefix] = privilege
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1336
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1337 def __findUser(self, name):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1338 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1339 Private method to find the user in the list of users.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1340
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1341 @param name user name to search for
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1342 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1343 @return reference to the list entry
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1344 @rtype QListWidgetItem
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1345 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1346 for row in range(self.usersList.count()):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1347 itm = self.usersList.item(row)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1348 if itm.name() == name:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1349 return itm
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1350
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1351 return None
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1352
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1353 def __extractPrivilege(self, name):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1354 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1355 Private method to extract the user privileges out of the name.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1356
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1357 @param name user name and prefixes
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1358 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1359 @return tuple containing a list of privileges and user name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1360 @rtype tuple of (list of str, str)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1361 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1362 privileges = []
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1363 while name[0] in self.__prefixToPrivilege:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1364 prefix = name[0]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1365 privileges.append(self.__prefixToPrivilege[prefix])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1366 name = name[1:]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1367 if name[0] == ",":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1368 name = name[1:]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1369
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1370 return privileges, name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1371
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1372 def __addManagementMessage(self, indicator, message):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1373 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1374 Private method to add a channel management message to the list.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1375
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1376 @param indicator indicator to be shown
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1377 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1378 @param message message to be shown
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1379 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1380 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1381 if indicator == self.JoinIndicator:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1382 color = ircExtensionPluginObject.getPreferences("JoinChannelColour")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1383 elif indicator == self.LeaveIndicator:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1384 color = ircExtensionPluginObject.getPreferences("LeaveChannelColour")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1385 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1386 color = ircExtensionPluginObject.getPreferences("ChannelInfoColour")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1387 self.__appendMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1388 '<font color="{0}">{1} <b>[</b>{2}<b>]</b> {3}</font>'.format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1389 color, ircTimestamp(), indicator, message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1390 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1391 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1392
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1393 def __appendMessage(self, message):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1394 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1395 Private slot to append a message.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1396
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1397 @param message message to be appended
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1398 @type str
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1399 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1400 if (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1401 self.__hidden
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1402 and self.__markerLine == ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1403 and ircExtensionPluginObject.getPreferences("MarkPositionWhenHidden")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1404 ):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1405 self.setMarkerLine()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1406 self.messages.append(message)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1407
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1408 def setMarkerLine(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1409 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1410 Public method to draw a line to mark the current position.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1411 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1412 self.unsetMarkerLine()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1413 self.__markerLine = (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1414 '<span style=" color:{0}; background-color:{1};">{2}</span>'.format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1415 ircExtensionPluginObject.getPreferences("MarkerLineForegroundColour"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1416 ircExtensionPluginObject.getPreferences("MarkerLineBackgroundColour"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1417 self.tr("--- New From Here ---"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1418 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1419 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1420 self.messages.append(self.__markerLine)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1421
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1422 def unsetMarkerLine(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1423 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1424 Public method to remove the marker line.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1425 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1426 if self.__markerLine:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1427 txt = self.messages.toHtml()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1428 if txt.endswith(self.__markerLine + "</p></body></html>"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1429 # remove empty last paragraph
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1430 pos = txt.rfind("<p")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1431 txt = txt[:pos] + "</body></html>"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1432 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1433 txt = txt.replace(self.__markerLine, "")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1434 self.messages.setHtml(txt)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1435 self.__markerLine = ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1436 self.messages.moveCursor(QTextCursor.MoveOperation.End)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1437
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1438 def __clearMessages(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1439 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1440 Private slot to clear the contents of the messages display.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1441 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1442 self.messages.clear()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1443
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1444 def __copyMessages(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1445 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1446 Private slot to copy the selection of the messages display to the
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1447 clipboard.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1448 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1449 self.messages.copy()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1450
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1451 def __copyAllMessages(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1452 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1453 Private slot to copy the contents of the messages display to the
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1454 clipboard.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1455 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1456 txt = self.messages.toPlainText()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1457 if txt:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1458 cb = QApplication.clipboard()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1459 cb.setText(txt)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1460
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1461 def __cutAllMessages(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1462 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1463 Private slot to cut the contents of the messages display to the
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1464 clipboard.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1465 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1466 txt = self.messages.toPlainText()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1467 if txt:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1468 cb = QApplication.clipboard()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1469 cb.setText(txt)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1470 self.messages.clear()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1471
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1472 def __saveMessages(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1473 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1474 Private slot to save the contents of the messages display.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1475 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1476 hasText = not self.messages.document().isEmpty()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1477 if hasText:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1478 if OSUtilities.isWindowsPlatform():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1479 htmlExtension = "htm"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1480 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1481 htmlExtension = "html"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1482 fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1483 self,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1484 self.tr("Save Messages"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1485 "",
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1486 self.tr("HTML Files (*.{0});;Text Files (*.txt);;All Files (*)").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1487 htmlExtension
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1488 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1489 None,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1490 EricFileDialog.DontConfirmOverwrite,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1491 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1492 if fname:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1493 fpath = pathlib.Path(fname)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1494 if not fpath.suffix:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1495 ex = selectedFilter.split("(*")[1].split(")")[0]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1496 if ex:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1497 fpath = fpath.with_suffix(ex)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1498 if fpath.exists():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1499 res = EricMessageBox.yesNo(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1500 self,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1501 self.tr("Save Messages"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1502 self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1503 "<p>The file <b>{0}</b> already exists."
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1504 " Overwrite it?</p>"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1505 ).format(fpath),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1506 icon=EricMessageBox.Warning,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1507 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1508 if not res:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1509 return
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1510
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1511 try:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1512 txt = (
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1513 self.messages.toHtml()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1514 if fpath.suffix.lower() in [".htm", ".html"]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1515 else self.messages.toPlainText()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1516 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1517 with fpath.open("w", encoding="utf-8") as f:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1518 f.write(txt)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1519 except OSError as err:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1520 EricMessageBox.critical(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1521 self,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1522 self.tr("Error saving Messages"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1523 self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1524 """<p>The messages contents could not be written"""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1525 """ to <b>{0}</b></p><p>Reason: {1}</p>"""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1526 ).format(fpath, str(err)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1527 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1528
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1529 def __initMessagesMenu(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1530 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1531 Private slot to initialize the context menu of the messages pane.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1532 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1533 self.__messagesMenu = QMenu(self)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1534 self.__copyMessagesAct = self.__messagesMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1535 EricPixmapCache.getIcon("editCopy"), self.tr("Copy"), self.__copyMessages
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1536 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1537 self.__messagesMenu.addSeparator()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1538 self.__cutAllMessagesAct = self.__messagesMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1539 EricPixmapCache.getIcon("editCut"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1540 self.tr("Cut all"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1541 self.__cutAllMessages,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1542 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1543 self.__copyAllMessagesAct = self.__messagesMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1544 EricPixmapCache.getIcon("editCopy"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1545 self.tr("Copy all"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1546 self.__copyAllMessages,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1547 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1548 self.__messagesMenu.addSeparator()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1549 self.__clearMessagesAct = self.__messagesMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1550 EricPixmapCache.getIcon("editDelete"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1551 self.tr("Clear"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1552 self.__clearMessages,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1553 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1554 self.__messagesMenu.addSeparator()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1555 self.__saveMessagesAct = self.__messagesMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1556 EricPixmapCache.getIcon("fileSave"), self.tr("Save"), self.__saveMessages
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1557 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1558 self.__messagesMenu.addSeparator()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1559 self.__setMarkerMessagesAct = self.__messagesMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1560 self.tr("Mark Current Position"), self.setMarkerLine
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1561 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1562 self.__unsetMarkerMessagesAct = self.__messagesMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1563 self.tr("Remove Position Marker"), self.unsetMarkerLine
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1564 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1565
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1566 self.on_messages_copyAvailable(False)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1567
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1568 @pyqtSlot(bool)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1569 def on_messages_copyAvailable(self, yes):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1570 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1571 Private slot to react to text selection/deselection of the messages
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1572 edit.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1573
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1574 @param yes flag signaling the availability of selected text
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1575 @type bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1576 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1577 self.__copyMessagesAct.setEnabled(yes)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1578
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1579 @pyqtSlot(QPoint)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1580 def on_messages_customContextMenuRequested(self, pos):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1581 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1582 Private slot to show the context menu of the messages pane.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1583
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1584 @param pos the position of the mouse pointer
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1585 @type QPoint
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1586 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1587 enable = not self.messages.document().isEmpty()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1588 self.__cutAllMessagesAct.setEnabled(enable)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1589 self.__copyAllMessagesAct.setEnabled(enable)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1590 self.__saveMessagesAct.setEnabled(enable)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1591 self.__setMarkerMessagesAct.setEnabled(self.__markerLine == "")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1592 self.__unsetMarkerMessagesAct.setEnabled(self.__markerLine != "")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1593 self.__messagesMenu.popup(self.messages.mapToGlobal(pos))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1594
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1595 def __whoIs(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1596 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1597 Private slot to get information about the selected user.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1598 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1599 self.__whoIsNick = self.usersList.selectedItems()[0].text()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1600 self.sendData.emit("WHOIS " + self.__whoIsNick)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1601
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1602 def __openPrivateChat(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1603 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1604 Private slot to open a chat with the selected user.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1605 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1606 user = self.usersList.selectedItems()[0].text()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1607 self.openPrivateChat.emit(user)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1608
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1609 def __sendUserMessage(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1610 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1611 Private slot to send a private message to a specific user.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1612 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1613 from eric7.EricWidgets import EricTextInputDialog
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1614
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1615 user = self.usersList.selectedItems()[0].text()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1616 ok, message = EricTextInputDialog.getText(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1617 self,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1618 self.tr("Send Message"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1619 self.tr("Enter the message to be sent:"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1620 minimumWidth=400,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1621 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1622 if ok and message:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1623 self.__processUserMessage("/MSG {0} {1}".format(user, message))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1624
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1625 def __sendUserQuery(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1626 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1627 Private slot to send a query message to a specific user.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1628 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1629 from eric7.EricWidgets import EricTextInputDialog
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1630
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1631 user = self.usersList.selectedItems()[0].text()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1632 ok, message = EricTextInputDialog.getText(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1633 self,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1634 self.tr("Send Query"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1635 self.tr("Enter the message to be sent:"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1636 minimumWidth=400,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1637 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1638 if ok and message:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1639 self.__processUserMessage("/QUERY {0} {1}".format(user, message))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1640
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1641 def __sendUserNotice(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1642 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1643 Private slot to send a notice message to a specific user.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1644 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1645 from eric7.EricWidgets import EricTextInputDialog
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1646
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1647 user = self.usersList.selectedItems()[0].text()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1648 ok, message = EricTextInputDialog.getText(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1649 self,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1650 self.tr("Send Notice"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1651 self.tr("Enter the message to be sent:"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1652 minimumWidth=400,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1653 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1654 if ok and message:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1655 self.__processUserMessage("/NOTICE {0} {1}".format(user, message))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1656
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1657 def __pingUser(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1658 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1659 Private slot to send a ping to a specific user.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1660 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1661 user = self.usersList.selectedItems()[0].text()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1662 self.__processUserMessage("/PING {0}".format(user))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1663
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1664 def __ignoreUser(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1665 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1666 Private slot to ignore a specific user.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1667 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1668 user = self.usersList.selectedItems()[0].text()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1669 self.__processUserMessage("/IGNORE {0}".format(user))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1670
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1671 def __initUsersMenu(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1672 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1673 Private slot to initialize the users list context menu.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1674 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1675 self.__usersMenu = QMenu(self)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1676 self.__whoIsAct = self.__usersMenu.addAction(self.tr("Who Is"), self.__whoIs)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1677 self.__usersMenu.addSeparator()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1678 self.__privateChatAct = self.__usersMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1679 self.tr("Private Chat"), self.__openPrivateChat
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1680 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1681 self.__usersMenu.addSeparator()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1682 self.__sendUserMessageAct = self.__usersMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1683 self.tr("Send Message"), self.__sendUserMessage
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1684 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1685 self.__sendUserQueryAct = self.__usersMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1686 self.tr("Send Query"), self.__sendUserQuery
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1687 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1688 self.__sendUserNoticeAct = self.__usersMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1689 self.tr("Send Notice"), self.__sendUserNotice
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1690 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1691 self.__usersMenu.addSeparator()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1692 self.__pingUserAct = self.__usersMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1693 self.tr("Send Ping"), self.__pingUser
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1694 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1695 self.__ignoreUserAct = self.__usersMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1696 self.tr("Ignore User"), self.__ignoreUser
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1697 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1698 self.__usersMenu.addSeparator()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1699 self.__usersListRefreshAct = self.__usersMenu.addAction(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1700 self.tr("Refresh"), self.__sendAutoWhoCommand
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1701 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1702
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1703 @pyqtSlot(QPoint)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1704 def on_usersList_customContextMenuRequested(self, pos):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1705 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1706 Private slot to show the context menu of the users list.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1707
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1708 @param pos the position of the mouse pointer
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1709 @type QPoint
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1710 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1711 enable = len(self.usersList.selectedItems()) > 0
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1712 enablePrivate = enable and not self.__private
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1713 itm = self.usersList.itemAt(pos)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1714 if itm and enablePrivate:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1715 enablePrivate = itm.text().lower() not in [
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1716 "chanserv",
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1717 self.__userName.lower(),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1718 ]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1719 self.__whoIsAct.setEnabled(enable)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1720 self.__privateChatAct.setEnabled(enablePrivate)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1721 self.__usersListRefreshAct.setEnabled(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1722 self.usersList.count()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1723 <= ircExtensionPluginObject.getPreferences("AutoUserInfoMax")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1724 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1725 self.__usersMenu.popup(self.usersList.mapToGlobal(pos))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1726
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1727 def hideEvent(self, _evt):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1728 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1729 Protected method handling hide events.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1730
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1731 @param _evt reference to the hide event (unused)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1732 @type QHideEvent
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1733 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1734 self.__hidden = True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1735
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1736 def showEvent(self, _evt):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1737 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1738 Protected method handling show events.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1739
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1740 @param _evt reference to the show event (unused)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1741 @type QShowEvent
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1742 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1743 self.__hidden = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1744
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1745 def initAutoWho(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1746 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1747 Public method to initialize the Auto Who system.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1748 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1749 if ircExtensionPluginObject.getPreferences("AutoUserInfoLookup"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1750 self.__autoWhoTimer.setInterval(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1751 ircExtensionPluginObject.getPreferences("AutoUserInfoInterval") * 1000
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1752 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1753 self.__autoWhoTimer.start()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1754
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1755 @pyqtSlot()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1756 def __sendAutoWhoCommand(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1757 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1758 Private slot to send the WHO command to update the users list.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1759 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1760 if self.usersList.count() <= ircExtensionPluginObject.getPreferences(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1761 "AutoUserInfoMax"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1762 ):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1763 self.__autoWhoRequested = True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1764 self.sendData.emit(self.__autoWhoTemplate.format(self.__name))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1765
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1766 def __autoWhoEntry(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1767 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1768 Private method to handle a WHO entry returned by the server as
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1769 requested automatically.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1770
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1771 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1772 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1773 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1774 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1775 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1776 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1777 # group(2) user flags
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1778 if self.__autoWhoRequested:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1779 itm = self.__findUser(match.group(1))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1780 if itm:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1781 itm.parseWhoFlags(match.group(2))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1782 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1783
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1784 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1785
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1786 def __whoEnd(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1787 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1788 Private method to handle the end of the WHO list.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1789
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1790 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1791 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1792 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1793 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1794 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1795 if match.group(1).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1796 if self.__autoWhoRequested:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1797 self.__autoWhoRequested = False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1798 self.initAutoWho()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1799 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1800 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1801 self.tr("Who"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1802 self.tr("End of WHO list for {0}.").format(match.group(1)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1803 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1804 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1805
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1806 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1807
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1808 def __whoEntry(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1809 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1810 Private method to handle a WHO entry returned by the server as
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1811 requested manually.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1812
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1813 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1814 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1815 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1816 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1817 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1818 # group(1) channel
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1819 # group(2) user
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1820 # group(3) host
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1821 # group(4) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1822 # group(5) user flags
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1823 # group(6) real name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1824 if match.group(1).lower() == self.__name.lower():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1825 away = self.tr(" (Away)") if match.group(5).startswith("G") else ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1826 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1827 self.tr("Who"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1828 self.tr("{0} is {1}@{2} ({3}){4}").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1829 match.group(4), match.group(2), match.group(3), match.group(6), away
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1830 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1831 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1832 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1833
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1834 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1835
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1836 def __whoIsUser(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1837 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1838 Private method to handle the WHOIS user reply.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1839
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1840 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1841 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1842 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1843 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1844 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1845 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1846 # group(2) user
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1847 # group(3) host
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1848 # group(4) real name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1849 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1850 realName = match.group(4).replace("<", "&lt;").replace(">", "&gt;")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1851 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1852 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1853 self.tr("{0} is {1}@{2} ({3}).").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1854 match.group(1), match.group(2), match.group(3), realName
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1855 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1856 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1857 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1858
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1859 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1860
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1861 def __whoIsChannels(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1862 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1863 Private method to handle the WHOIS channels reply.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1864
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1865 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1866 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1867 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1868 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1869 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1870 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1871 # group(2) channels
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1872 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1873 userChannels = []
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1874 voiceChannels = []
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1875 opChannels = []
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1876 halfopChannels = []
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1877 ownerChannels = []
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1878 adminChannels = []
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1879
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1880 # generate the list of channels the user is in
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1881 channelList = match.group(2).split()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1882 for channel in channelList:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1883 if channel.startswith(("*", "&")):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1884 adminChannels.append(channel[1:])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1885 elif channel.startswith(("!", "~")) and self.__ircWidget.isChannelName(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1886 channel[1:]
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1887 ):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1888 ownerChannels.append(channel[1:])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1889 elif channel.startswith("@+"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1890 opChannels.append(channel[2:])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1891 elif channel.startswith("@"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1892 opChannels.append(channel[1:])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1893 elif channel.startswith("%"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1894 halfopChannels.append(channel[1:])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1895 elif channel.startswith("+"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1896 voiceChannels.append(channel[1:])
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1897 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1898 userChannels.append(channel)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1899
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1900 # show messages
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1901 if userChannels:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1902 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1903 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1904 self.tr("{0} is a user on channels: {1}").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1905 match.group(1), " ".join(userChannels)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1906 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1907 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1908 if voiceChannels:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1909 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1910 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1911 self.tr("{0} has voice on channels: {1}").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1912 match.group(1), " ".join(voiceChannels)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1913 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1914 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1915 if halfopChannels:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1916 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1917 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1918 self.tr("{0} is a halfop on channels: {1}").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1919 match.group(1), " ".join(halfopChannels)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1920 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1921 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1922 if opChannels:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1923 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1924 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1925 self.tr("{0} is an operator on channels: {1}").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1926 match.group(1), " ".join(opChannels)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1927 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1928 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1929 if ownerChannels:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1930 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1931 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1932 self.tr("{0} is owner of channels: {1}").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1933 match.group(1), " ".join(ownerChannels)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1934 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1935 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1936 if adminChannels:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1937 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1938 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1939 self.tr("{0} is admin on channels: {1}").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1940 match.group(1), " ".join(adminChannels)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1941 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1942 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1943 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1944
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1945 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1946
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1947 def __whoIsServer(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1948 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1949 Private method to handle the WHOIS server reply.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1950
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1951 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1952 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1953 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1954 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1955 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1956 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1957 # group(2) server
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1958 # group(3) server info
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1959 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1960 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1961 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1962 self.tr("{0} is online via {1} ({2}).").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1963 match.group(1), match.group(2), match.group(3)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1964 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1965 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1966 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1967
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1968 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1969
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1970 def __whoIsOperator(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1971 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1972 Private method to handle the WHOIS operator reply.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1973
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1974 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1975 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1976 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1977 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1978 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1979 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1980 # group(2) message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1981 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1982 if match.group(2).lower().startswith("is an irc operator"):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1983 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1984 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1985 self.tr("{0} is an IRC Operator.").format(match.group(1)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1986 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1987 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1988 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1989 self.tr("Whois"), "{0} {1}".format(match.group(1), match.group(2))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1990 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1991 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1992
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1993 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1994
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1995 def __whoIsIdle(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1996 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1997 Private method to handle the WHOIS idle reply.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1998
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1999 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2000 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2001 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2002 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2003 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2004 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2005 # group(2) idle seconds
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2006 # group(3) signon time
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2007 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2008 seconds = int(match.group(2))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2009 minutes = seconds // 60
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2010 hours = minutes // 60
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2011 days = hours // 24
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2012
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2013 signonTimestamp = int(match.group(3))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2014 signonTime = QDateTime()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2015 signonTime.setTime_t(signonTimestamp)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2016
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2017 if days:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2018 daysString = self.tr("%n day(s)", "", days)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2019 hoursString = self.tr("%n hour(s)", "", hours)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2020 minutesString = self.tr("%n minute(s)", "", minutes)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2021 secondsString = self.tr("%n second(s)", "", seconds)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2022 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2023 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2024 self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2025 "{0} has been idle for {1}, {2}, {3}, and {4}.",
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2026 "{0} = name of person, {1} = (x days),"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2027 " {2} = (x hours), {3} = (x minutes),"
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2028 " {4} = (x seconds)",
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2029 ).format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2030 match.group(1),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2031 daysString,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2032 hoursString,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2033 minutesString,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2034 secondsString,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2035 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2036 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2037 elif hours:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2038 hoursString = self.tr("%n hour(s)", "", hours)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2039 minutesString = self.tr("%n minute(s)", "", minutes)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2040 secondsString = self.tr("%n second(s)", "", seconds)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2041 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2042 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2043 self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2044 "{0} has been idle for {1}, {2}, and {3}.",
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2045 "{0} = name of person, {1} = (x hours), "
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2046 "{2} = (x minutes), {3} = (x seconds)",
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2047 ).format(match.group(1), hoursString, minutesString, secondsString),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2048 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2049 elif minutes:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2050 minutesString = self.tr("%n minute(s)", "", minutes)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2051 secondsString = self.tr("%n second(s)", "", seconds)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2052 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2053 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2054 self.tr(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2055 "{0} has been idle for {1} and {2}.",
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2056 "{0} = name of person, {1} = (x minutes), {3} = (x seconds)",
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2057 ).format(match.group(1), minutesString, secondsString),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2058 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2059 else:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2060 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2061 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2062 self.tr("{0} has been idle for %n second(s).", "", seconds).format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2063 match.group(1)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2064 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2065 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2066
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2067 if not signonTime.isNull():
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2068 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2069 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2070 self.tr("{0} has been online since {1}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2071 match.group(1), signonTime.toString("yyyy-MM-dd, hh:mm:ss")
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2072 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2073 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2074 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2075
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2076 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2077
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2078 def __whoIsEnd(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2079 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2080 Private method to handle the end of WHOIS reply.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2081
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2082 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2083 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2084 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2085 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2086 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2087 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2088 # group(2) end message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2089 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2090 self.__whoIsNick = ""
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2091 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2092 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2093 self.tr("End of WHOIS list for {0}.").format(match.group(1)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2094 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2095 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2096
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2097 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2098
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2099 def __whoIsIdentify(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2100 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2101 Private method to handle the WHOIS identify and identified replies.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2102
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2103 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2104 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2105 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2106 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2107 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2108 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2109 # group(2) identified message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2110 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2111 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2112 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2113 self.tr("{0} is an identified user.").format(match.group(1)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2114 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2115 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2116
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2117 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2118
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2119 def __whoIsHelper(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2120 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2121 Private method to handle the WHOIS helper reply.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2122
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2123 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2124 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2125 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2126 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2127 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2128 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2129 # group(2) helper message
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2130 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2131 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2132 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2133 self.tr("{0} is available for help.").format(match.group(1)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2134 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2135 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2136
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2137 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2138
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2139 def __whoIsAccount(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2140 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2141 Private method to handle the WHOIS account reply.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2142
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2143 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2144 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2145 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2146 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2147 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2148 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2149 # group(2) login name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2150 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2151 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2152 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2153 self.tr("{0} is logged in as {1}.").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2154 match.group(1), match.group(2)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2155 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2156 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2157 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2158
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2159 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2160
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2161 def __whoIsActually(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2162 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2163 Private method to handle the WHOIS actually reply.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2164
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2165 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2166 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2167 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2168 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2169 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2170 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2171 # group(2) actual user@host
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2172 # group(3) actual IP
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2173 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2174 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2175 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2176 self.tr("{0} is actually using the host {1} (IP: {2}).").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2177 match.group(1), match.group(2), match.group(3)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2178 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2179 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2180 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2181
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2182 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2183
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2184 def __whoIsSecure(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2185 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2186 Private method to handle the WHOIS secure reply.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2187
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2188 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2189 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2190 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2191 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2192 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2193 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2194 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2195 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2196 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2197 self.tr("{0} is using a secure connection.").format(match.group(1)),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2198 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2199 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2200
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2201 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2202
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2203 def __whoIsConnection(self, match):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2204 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2205 Private method to handle the WHOIS connection reply.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2206
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2207 @param match match object that matched the pattern
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2208 @type re.Match
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2209 @return flag indicating whether the message was handled
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2210 @rtype bool
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2211 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2212 # group(1) nick
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2213 # group(2) host name
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2214 # group(3) IP
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2215 if match.group(1) == self.__whoIsNick:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2216 self.__addManagementMessage(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2217 self.tr("Whois"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2218 self.tr("{0} is connecting from {1} (IP: {2}).").format(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2219 match.group(1), match.group(2), match.group(3)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2220 ),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2221 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2222 return True
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2223
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2224 return False
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2225
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2226 def __setEditTopicButton(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2227 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2228 Private method to set the visibility of the Edit Topic button.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2229 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2230 itm = self.__findUser(self.__userName)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2231 if itm:
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2232 self.editTopicButton.setVisible(itm.canChangeTopic())
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2233
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2234 @pyqtSlot()
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2235 def on_editTopicButton_clicked(self):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2236 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2237 Private slot to change the topic of the channel.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2238 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2239 topic, ok = QInputDialog.getText(
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2240 self,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2241 self.tr("Edit Channel Topic"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2242 self.tr("Enter the topic for this channel:"),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2243 QLineEdit.EchoMode.Normal,
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2244 self.topicLabel.text(),
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2245 )
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2246 if ok and topic != "":
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2247 self.sendData.emit("TOPIC {0} :{1}".format(self.__name, topic))
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2248
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2249 @pyqtSlot(QUrl)
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2250 def on_messages_anchorClicked(self, url):
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2251 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2252 Private slot to open links in the default browser.
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2253
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2254 @param url URL to be opened
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2255 @type QUrl
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2256 """
5b635dc8895f Extracted the IRC widgets from eric-ide to provide them as a plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2257 QDesktopServices.openUrl(url)

eric ide

mercurial