Fri, 18 Apr 2025 18:36:48 +0200
Extracted the IRC widgets from eric-ide to provide them as a plug-in.
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 network part of the IRC 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 | |
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 PyQt6.QtCore import QPoint, QThread, QUrl, pyqtSignal, 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
|
13 | from PyQt6.QtGui import QDesktopServices |
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.QtWidgets import QApplication, QMenu, 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
|
15 | |
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 | 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
|
17 | 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
|
18 | 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
|
19 | 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
|
20 | 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
|
21 | |
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 | from .IrcUtilities import 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
|
23 | from .Ui_IrcNetworkWidget import Ui_IrcNetworkWidget |
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 | |
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 | |
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 | class IrcNetworkWidget(QWidget, Ui_IrcNetworkWidget): |
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 | """ |
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 | Class implementing the network part of the IRC 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
|
29 | |
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 | @signal connectNetwork(str,bool,bool) emitted to connect or disconnect 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
|
31 | a network |
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 | @signal editNetwork(str) emitted to edit a network configuration |
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 | @signal joinChannel(str) emitted to join a 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
|
34 | @signal nickChanged(str) emitted to change the 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
|
35 | @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
|
36 | @signal away(bool) emitted to indicate the away 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
|
37 | @signal autoConnected() emitted after an automatic connection was initiated |
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 | """ |
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 | |
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 | connectNetwork = pyqtSignal(str, bool, 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
|
41 | editNetwork = 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
|
42 | joinChannel = 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
|
43 | nickChanged = 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
|
44 | 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
|
45 | away = pyqtSignal(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
|
46 | autoConnected = 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
|
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 | 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
|
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 | 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
|
51 | |
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 | @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
|
53 | @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
|
54 | """ |
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 | 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
|
56 | 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
|
57 | |
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 | self.joinButton.setEnabled(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
|
59 | self.nickCombo.setEnabled(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
|
60 | self.awayButton.setEnabled(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
|
61 | |
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 | self.channelCombo.lineEdit().returnPressed.connect(self.on_joinButton_clicked) |
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 | self.nickCombo.lineEdit().returnPressed.connect( |
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 | self.on_nickCombo_currentIndexChanged |
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 | |
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 | self.__manager = 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
|
68 | self.__connected = 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
|
69 | self.__registered = 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
|
70 | self.__away = 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
|
71 | |
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 | self.setConnected(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
|
73 | |
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 | 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
|
75 | |
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 | self.connectButton.setIcon(ircExtensionPluginObject.getIcon("ircConnect")) |
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.editButton.setIcon(ircExtensionPluginObject.getIcon("ircConfigure")) |
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.joinButton.setIcon(ircExtensionPluginObject.getIcon("ircJoinChannel")) |
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.awayButton.setIcon(ircExtensionPluginObject.getIcon("ircUserPresent")) |
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 | def initialize(self, manager): |
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 | """ |
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 | Public method to initialize the 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
|
84 | |
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 | @param manager reference to the network manager |
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 | @type IrcNetworkManager |
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 | self.__manager = manager |
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 | |
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 | self.networkCombo.addItems(self.__manager.getNetworkNames()) |
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 | |
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 | self.__manager.networksChanged.connect(self.__refreshNetworks) |
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 | self.__manager.identitiesChanged.connect(self.__refreshNetworks) |
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 | def autoConnect(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
|
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 | Public method to perform the IRC auto 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
|
98 | """ |
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 | userInterface = 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
|
100 | online = userInterface.isOnline() |
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.connectButton.setEnabled(online) |
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 | userInterface.onlineStateChanged.connect(self.__onlineStateChanged) |
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 | if online: |
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 | self.__autoConnect() |
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 | |
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 | def __autoConnect(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
|
107 | """ |
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 | Private method to perform the IRC auto 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
|
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 | for networkName in self.__manager.getNetworkNames(): |
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 | if self.__manager.getNetwork(networkName).autoConnect(): |
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 | row = self.networkCombo.findText(networkName) |
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 | self.networkCombo.setCurrentIndex(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
|
114 | self.on_connectButton_clicked() |
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 | self.autoConnected.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
|
116 | break |
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 | |
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 | @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
|
119 | def __onlineStateChanged(self, online): |
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 | Private slot handling online state changes. |
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 | @param online online state |
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 | @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
|
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 | self.connectButton.setEnabled(online) |
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 | if online: |
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 | # delay a bit because the signal seems to be sent before 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
|
129 | # network interface is fully up |
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 | QThread.msleep(200) |
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.__autoConnect() |
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 | 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
|
133 | network = self.networkCombo.currentText() |
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 | self.connectNetwork.emit(network, online, 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
|
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 | @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
|
137 | def __refreshNetworks(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
|
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 | Private slot to refresh all network related widgets. |
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 | currentNetwork = self.networkCombo.currentText() |
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 | currentNick = self.nickCombo.currentText() |
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 | currentChannel = self.channelCombo.currentText() |
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 | blocked = self.networkCombo.blockSignals(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
|
145 | self.networkCombo.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
|
146 | self.networkCombo.addItems(self.__manager.getNetworkNames()) |
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 | self.networkCombo.blockSignals(blocked) |
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 | row = self.networkCombo.findText(currentNetwork) |
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 | if row == -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
|
150 | row = 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
|
151 | blocked = self.nickCombo.blockSignals(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
|
152 | self.networkCombo.setCurrentIndex(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
|
153 | self.nickCombo.setEditText(currentNick) |
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 | self.nickCombo.blockSignals(blocked) |
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 | self.channelCombo.setEditText(currentChannel) |
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 | |
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 | @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
|
158 | def on_connectButton_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
|
159 | """ |
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 | Private slot to connect to a network. |
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 | network = self.networkCombo.currentText() |
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 | self.connectNetwork.emit(network, not self.__connected, 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
|
164 | |
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 | @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
|
166 | def on_awayButton_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
|
167 | """ |
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 | Private slot to toggle the away 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
|
169 | """ |
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 | if self.__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
|
171 | self.handleAwayCommand("") |
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 | 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
|
173 | networkName = self.networkCombo.currentText() |
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 | identityName = self.__manager.getNetwork(networkName).getIdentityName() |
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 | identity = self.__manager.getIdentity(identityName) |
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 | if identity: |
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 | awayMessage = identity.getAwayMessage() |
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 | 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
|
179 | awayMessage = "" |
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 | self.handleAwayCommand(awayMessage) |
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 | @pyqtSlot(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
|
183 | def handleAwayCommand(self, awayMessage): |
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 | Public slot to process an away 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
|
186 | |
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 | @param awayMessage message to be set for being 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
|
188 | @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
|
189 | """ |
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 awayMessage and not self.__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
|
191 | # set being 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
|
192 | # don't send away, if the status is already set |
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 | self.sendData.emit("AWAY :" + awayMessage) |
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 | self.awayButton.setIcon(ircExtensionPluginObject.getIcon("ircUserAway")) |
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 | self.__away = 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
|
196 | self.away.emit(self.__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
|
197 | elif not awayMessage and self.__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
|
198 | # cancel being 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
|
199 | self.sendData.emit("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.awayButton.setIcon(ircExtensionPluginObject.getIcon("ircUserPresent")) |
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.__away = 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
|
202 | self.away.emit(self.__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
|
203 | |
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 | @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
|
205 | def on_editButton_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
|
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 | Private slot to edit a network. |
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 | """ |
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 | network = self.networkCombo.currentText() |
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 | self.editNetwork.emit(network) |
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 | |
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 | @pyqtSlot(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
|
213 | def on_channelCombo_editTextChanged(self, 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
|
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 | Private slot to react upon changes 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
|
216 | |
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 | @param txt current text of the channel combo |
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 | @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
|
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 | on = bool(txt) and self.__registered |
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 | self.joinButton.setEnabled(on) |
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 | @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
|
224 | def on_joinButton_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
|
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 | Private slot to join a 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
|
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 | channel = self.channelCombo.currentText() |
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 | self.joinChannel.emit(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
|
230 | |
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 | @pyqtSlot(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
|
232 | def on_networkCombo_currentIndexChanged(self, index): |
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 | """ |
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 | Private slot to handle selections of a network. |
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 | @param index index of the selected 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
|
237 | @type 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
|
238 | """ |
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 | networkName = self.networkCombo.itemText(index) |
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 | network = self.__manager.getNetwork(networkName) |
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 | self.nickCombo.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
|
242 | self.channelCombo.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
|
243 | if network: |
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 | channels = network.getChannelNames() |
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 | self.channelCombo.addItems(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
|
246 | self.channelCombo.setEnabled(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
|
247 | identity = self.__manager.getIdentity(network.getIdentityName()) |
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 | if identity: |
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 | self.nickCombo.addItems(identity.getNickNames()) |
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 | 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
|
251 | self.channelCombo.setEnabled(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
|
252 | |
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 | def getNetworkChannels(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
|
254 | """ |
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 | Public method to get the list of channels associated with 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
|
256 | selected network. |
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 | |
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 | @return associated 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
|
259 | @rtype list of IrcChannel |
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 | networkName = self.networkCombo.currentText() |
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 | network = self.__manager.getNetwork(networkName) |
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 | return network.getChannels() |
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 | @pyqtSlot(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
|
266 | @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
|
267 | def on_nickCombo_currentIndexChanged(self, nick=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
|
268 | """ |
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 | Private slot to use another 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
|
270 | |
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 | @param nick index of the selected nick name (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
|
272 | @type 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
|
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 | if self.__connected: |
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 | self.nickChanged.emit(self.nickCombo.currentText()) |
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 | def getNickname(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
|
278 | """ |
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 | Public method to get the currently selected 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
|
280 | |
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 | @return selected 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
|
282 | @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
|
283 | """ |
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 | return self.nickCombo.currentText() |
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 | def setNickName(self, 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
|
287 | """ |
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 | Public slot to set the nick name in use. |
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 | |
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 | @param nick nick name in use |
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 | @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
|
292 | """ |
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.nickCombo.blockSignals(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
|
294 | self.nickCombo.setEditText(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
|
295 | self.nickCombo.blockSignals(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
|
296 | |
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 | def addMessage(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
|
298 | """ |
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 | Public method to add 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
|
300 | |
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 | @param msg message to be added |
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 | @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
|
303 | """ |
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 | s = '<font color="{0}">{1} {2}</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
|
305 | ircExtensionPluginObject.getPreferences("NetworkMessageColour"), |
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 | 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
|
307 | 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
|
308 | ) |
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 | self.messages.append(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
|
310 | |
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 | def addServerMessage(self, msgType, msg, filterMsg=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
|
312 | """ |
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 | Public method to add a 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
|
314 | |
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 | @param msgType txpe of the 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 | @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
|
317 | @param msg message to be added |
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 | @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
|
319 | @param filterMsg flag indicating to filter the 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
|
320 | @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
|
321 | """ |
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 | if filterMsg: |
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 | msg = 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
|
324 | s = '<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
|
325 | ircExtensionPluginObject.getPreferences("ServerMessageColour"), |
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 | 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
|
327 | msgType, |
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 | 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
|
329 | ) |
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 | self.messages.append(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
|
331 | |
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 | def addErrorMessage(self, msgType, 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
|
333 | """ |
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 | Public method to add an error 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
|
335 | |
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 | @param msgType txpe of the 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
|
337 | @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
|
338 | @param msg message to be added |
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 | @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
|
340 | """ |
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 | s = '<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
|
342 | ircExtensionPluginObject.getPreferences("ErrorMessageColour"), |
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 | 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
|
344 | msgType, |
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 | 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
|
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 | self.messages.append(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
|
348 | |
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 | def setConnected(self, connected): |
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 | Public slot to set the connection state. |
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 | @param connected flag indicating the connection state |
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 | @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
|
355 | """ |
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 | self.__connected = connected |
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 | if self.__connected: |
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 | self.connectButton.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
|
359 | ircExtensionPluginObject.getIcon("ircDisconnect") |
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 | ) |
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 | self.connectButton.setToolTip( |
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 | self.tr("Press to disconnect from the network") |
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 | 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
|
365 | self.connectButton.setIcon(ircExtensionPluginObject.getIcon("ircConnect")) |
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 | self.connectButton.setToolTip( |
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 | self.tr("Press to connect to the selected network") |
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 | ) |
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 | |
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 | def isConnected(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
|
371 | """ |
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 | Public method to check, if the network is connected. |
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 | @return flag indicating a connected network |
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 | @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
|
376 | """ |
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 | return self.__connected |
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 | def setRegistered(self, registered): |
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 | """ |
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 | Public slot to set the registered state. |
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 | |
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 | @param registered flag indicating the registration state |
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 | @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
|
385 | """ |
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 | self.__registered = registered |
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 | on = bool(self.channelCombo.currentText()) and self.__registered |
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 | self.joinButton.setEnabled(on) |
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 | self.nickCombo.setEnabled(registered) |
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 | self.awayButton.setEnabled(registered) |
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 | if registered: |
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 | self.awayButton.setIcon(ircExtensionPluginObject.getIcon("ircUserPresent")) |
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 | self.__away = 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
|
394 | |
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 | 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
|
396 | """ |
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 | 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
|
398 | """ |
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.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
|
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 | 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
|
402 | """ |
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 | Private slot to copy the selection of the messages display to |
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 | the 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
|
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 | 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
|
407 | |
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 | 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
|
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 | Private slot to copy the contents of the messages display to |
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 | the 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
|
412 | """ |
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 | 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
|
414 | 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
|
415 | 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
|
416 | 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
|
417 | |
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 __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
|
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 cut the contents of the messages display to |
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 | the 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
|
422 | """ |
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 | 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
|
424 | 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
|
425 | 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
|
426 | 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
|
427 | 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
|
428 | |
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 | 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
|
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 | 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
|
432 | """ |
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 | 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
|
434 | 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
|
435 | 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
|
436 | 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
|
437 | 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
|
438 | 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
|
439 | 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
|
440 | 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
|
441 | 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
|
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 | 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
|
444 | 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
|
445 | ), |
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 | 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
|
447 | 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
|
448 | ) |
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 | 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
|
450 | 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
|
451 | 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
|
452 | 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
|
453 | 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
|
454 | 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
|
455 | 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
|
456 | 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
|
457 | 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
|
458 | 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
|
459 | 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
|
460 | "<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
|
461 | " 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
|
462 | ).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
|
463 | 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
|
464 | ) |
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 | 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
|
466 | 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
|
467 | |
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 | 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
|
469 | 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
|
470 | 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
|
471 | 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
|
472 | 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
|
473 | ) |
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 | 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
|
475 | 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
|
476 | 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
|
477 | 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
|
478 | 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
|
479 | 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
|
480 | 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
|
481 | """<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
|
482 | """ 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
|
483 | ).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
|
484 | ) |
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 | |
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 | 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
|
487 | """ |
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 | 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
|
489 | """ |
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 | 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
|
491 | 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
|
492 | 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
|
493 | ) |
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 | 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
|
495 | 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
|
496 | 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
|
497 | 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
|
498 | 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
|
499 | ) |
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 | 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
|
501 | 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
|
502 | 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
|
503 | 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
|
504 | ) |
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 | 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
|
506 | 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
|
507 | 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
|
508 | 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
|
509 | 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
|
510 | ) |
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 | 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
|
512 | 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
|
513 | 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
|
514 | ) |
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 | 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
|
517 | |
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 | @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
|
519 | 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
|
520 | """ |
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 | Private slot to react to text selection/deselection of 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
|
522 | messages 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
|
523 | |
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 | @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
|
525 | @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
|
526 | """ |
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.__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
|
528 | |
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 | @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
|
530 | 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
|
531 | """ |
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 | 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
|
533 | |
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 | @param pos position the menu should be opened at |
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 | @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
|
536 | """ |
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 | 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
|
538 | 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
|
539 | 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
|
540 | 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
|
541 | 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
|
542 | |
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 | @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
|
544 | 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
|
545 | """ |
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 | 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
|
547 | |
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 | @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
|
549 | @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
|
550 | """ |
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 | QDesktopServices.openUrl(url) |