Mon, 25 Mar 2013 10:03:09 +0100
Fixed another situation in the IRC widget, that could cause a stack trace.
(grafted from 688c7ef0a5b022d3a56aaa25ea1753f1880e85a2)
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
2302
f29e9405c851
Updated copyright for 2013.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2279
diff
changeset
|
3 | # Copyright (c) 2012 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the network part of the IRC widget. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2446
diff
changeset
|
10 | from __future__ import unicode_literals # __IGNORE_WARNING__ |
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2446
diff
changeset
|
11 | |
2442
1dcfd570fa12
Fixed an issue in the IRC widget opening hyperlinks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
12 | from PyQt4.QtCore import pyqtSlot, pyqtSignal, QPoint, QFileInfo, QUrl |
1dcfd570fa12
Fixed an issue in the IRC widget opening hyperlinks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
13 | from PyQt4.QtGui import QWidget, QApplication, QMenu, QDesktopServices |
2252
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
14 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
15 | from E5Gui import E5MessageBox, E5FileDialog |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from .Ui_IrcNetworkWidget import Ui_IrcNetworkWidget |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from .IrcUtilities import ircFilter, ircTimestamp |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | import UI.PixmapCache |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | import Preferences |
2252
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
23 | import Utilities |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | class IrcNetworkWidget(QWidget, Ui_IrcNetworkWidget): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | Class implementing the network part of the IRC widget. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | @signal connectNetwork(str,bool) emitted to connect or disconnect from a network |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | @signal editNetwork(str) emitted to edit a network configuration |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | @signal joinChannel(str) emitted to join a channel |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @signal nickChanged(str) emitted to change the nick name |
2245
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
34 | @signal sendData(str) emitted to send a message to the channel |
2246
fdf22a29fbf4
Removed the "Auto Away" stuff because there is no universal way to check the computer for user inactivity.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2245
diff
changeset
|
35 | @signal away(bool) emitted to indicate the away status |
2258
9ca42fd3ecc0
Added a signal to the IRC widget fired after the autoconnect was initiated. This will make the IRC pane the current one on the right side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2253
diff
changeset
|
36 | @signal autoConnected() emitted after an automatic connection was initiated |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | connectNetwork = pyqtSignal(str, bool) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | editNetwork = pyqtSignal(str) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | joinChannel = pyqtSignal(str) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | nickChanged = pyqtSignal(str) |
2245
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
42 | sendData = pyqtSignal(str) |
2246
fdf22a29fbf4
Removed the "Auto Away" stuff because there is no universal way to check the computer for user inactivity.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2245
diff
changeset
|
43 | away = pyqtSignal(bool) |
2258
9ca42fd3ecc0
Added a signal to the IRC widget fired after the autoconnect was initiated. This will make the IRC pane the current one on the right side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2253
diff
changeset
|
44 | autoConnected = pyqtSignal() |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | def __init__(self, parent=None): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | Constructor |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | @param parent reference to the parent widget (QWidget) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2446
diff
changeset
|
52 | super(IrcNetworkWidget, self).__init__(parent) |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | self.setupUi(self) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.connectButton.setIcon(UI.PixmapCache.getIcon("ircConnect.png")) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.editButton.setIcon(UI.PixmapCache.getIcon("ircConfigure.png")) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | self.joinButton.setIcon(UI.PixmapCache.getIcon("ircJoinChannel.png")) |
2245
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
58 | self.awayButton.setIcon(UI.PixmapCache.getIcon("ircUserPresent.png")) |
2244
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
59 | |
2234
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
60 | self.joinButton.setEnabled(False) |
2244
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
61 | self.nickCombo.setEnabled(False) |
2245
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
62 | self.awayButton.setEnabled(False) |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | |
2253
7ba2af1ff785
Implemented support for the WHO command and the auto user status update function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2252
diff
changeset
|
64 | self.channelCombo.lineEdit().returnPressed.connect(self.on_joinButton_clicked) |
7ba2af1ff785
Implemented support for the WHO command and the auto user status update function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2252
diff
changeset
|
65 | self.nickCombo.lineEdit().returnPressed.connect( |
7ba2af1ff785
Implemented support for the WHO command and the auto user status update function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2252
diff
changeset
|
66 | self.on_nickCombo_currentIndexChanged) |
7ba2af1ff785
Implemented support for the WHO command and the auto user status update function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2252
diff
changeset
|
67 | |
2252
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
68 | self.__initMessagesMenu() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
69 | |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | self.__manager = None |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | self.__connected = False |
2244
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
72 | self.__registered = False |
2245
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
73 | self.__away = False |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | def initialize(self, manager): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | Public method to initialize the widget. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | @param manager reference to the network manager (IrcNetworkManager) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | self.__manager = manager |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | self.networkCombo.addItems(self.__manager.getNetworkNames()) |
2232
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
84 | |
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
85 | self.__manager.networksChanged.connect(self.__refreshNetworks) |
2279
cbf90feec16f
Fixed a non-fatal issue in the IRC widget related to changing an identity.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2258
diff
changeset
|
86 | self.__manager.identitiesChanged.connect(self.__refreshNetworks) |
2232
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
87 | |
2237
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
88 | def autoConnect(self): |
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
89 | """ |
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
90 | Public method to perform the IRC auto connection. |
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
91 | """ |
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
92 | for networkName in self.__manager.getNetworkNames(): |
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
93 | if self.__manager.getNetwork(networkName).autoConnect(): |
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
94 | row = self.networkCombo.findText(networkName) |
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
95 | self.networkCombo.setCurrentIndex(row) |
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
96 | self.on_connectButton_clicked() |
2258
9ca42fd3ecc0
Added a signal to the IRC widget fired after the autoconnect was initiated. This will make the IRC pane the current one on the right side.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2253
diff
changeset
|
97 | self.autoConnected.emit() |
2237
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
98 | break |
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
99 | |
2232
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
100 | @pyqtSlot() |
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
101 | def __refreshNetworks(self): |
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
102 | """ |
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
103 | Private slot to refresh all network related widgets. |
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
104 | """ |
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
105 | currentNetwork = self.networkCombo.currentText() |
2237
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
106 | currentNick = self.nickCombo.currentText() |
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
107 | currentChannel = self.channelCombo.currentText() |
2279
cbf90feec16f
Fixed a non-fatal issue in the IRC widget related to changing an identity.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2258
diff
changeset
|
108 | blocked = self.networkCombo.blockSignals(True) |
2232
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
109 | self.networkCombo.clear() |
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
110 | self.networkCombo.addItems(self.__manager.getNetworkNames()) |
2279
cbf90feec16f
Fixed a non-fatal issue in the IRC widget related to changing an identity.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2258
diff
changeset
|
111 | self.networkCombo.blockSignals(blocked) |
2232
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
112 | row = self.networkCombo.findText(currentNetwork) |
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
113 | if row == -1: |
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
114 | row = 0 |
2279
cbf90feec16f
Fixed a non-fatal issue in the IRC widget related to changing an identity.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2258
diff
changeset
|
115 | blocked = self.nickCombo.blockSignals(True) |
2232
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
116 | self.networkCombo.setCurrentIndex(row) |
2237
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
117 | self.nickCombo.setEditText(currentNick) |
2279
cbf90feec16f
Fixed a non-fatal issue in the IRC widget related to changing an identity.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2258
diff
changeset
|
118 | self.nickCombo.blockSignals(blocked) |
2237
baddb671c326
Continued with the IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2234
diff
changeset
|
119 | self.channelCombo.setEditText(currentChannel) |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | @pyqtSlot() |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | def on_connectButton_clicked(self): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | Private slot to connect to a network. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | network = self.networkCombo.currentText() |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | self.connectNetwork.emit(network, not self.__connected) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | @pyqtSlot() |
2245
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
130 | def on_awayButton_clicked(self): |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
131 | """ |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
132 | Private slot to toggle the away status. |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
133 | """ |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
134 | if self.__away: |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
135 | self.sendData.emit("AWAY") |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
136 | self.awayButton.setIcon(UI.PixmapCache.getIcon("ircUserPresent.png")) |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
137 | self.__away = False |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
138 | else: |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
139 | networkName = self.networkCombo.currentText() |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
140 | identityName = self.__manager.getNetwork(networkName).getIdentityName() |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
141 | awayMessage = self.__manager.getIdentity(identityName).getAwayMessage() |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
142 | self.sendData.emit("AWAY :" + awayMessage) |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
143 | self.awayButton.setIcon(UI.PixmapCache.getIcon("ircUserAway.png")) |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
144 | self.__away = True |
2246
fdf22a29fbf4
Removed the "Auto Away" stuff because there is no universal way to check the computer for user inactivity.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2245
diff
changeset
|
145 | self.away.emit(self.__away) |
2245
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
146 | |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
147 | @pyqtSlot() |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | def on_editButton_clicked(self): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | Private slot to edit a network. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | network = self.networkCombo.currentText() |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | self.editNetwork.emit(network) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | @pyqtSlot(str) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | def on_channelCombo_editTextChanged(self, txt): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | Private slot to react upon changes of the channel. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | @param txt current text of the channel combo (string) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | """ |
2244
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
162 | on = bool(txt) and self.__registered |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | self.joinButton.setEnabled(on) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | @pyqtSlot() |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | def on_joinButton_clicked(self): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | Private slot to join a channel. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | channel = self.channelCombo.currentText() |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | self.joinChannel.emit(channel) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | @pyqtSlot(str) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | def on_networkCombo_currentIndexChanged(self, networkName): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | Private slot to handle selections of a network. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | @param networkName selected network name (string) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | network = self.__manager.getNetwork(networkName) |
2232
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
181 | self.nickCombo.clear() |
47290dad6d0b
Started implementing the IRC network management dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2227
diff
changeset
|
182 | self.channelCombo.clear() |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | if network: |
2234
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
184 | channels = network.getChannelNames() |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | self.channelCombo.addItems(channels) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | self.channelCombo.setEnabled(True) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | identity = self.__manager.getIdentity( |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | network.getIdentityName()) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | if identity: |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | self.nickCombo.addItems(identity.getNickNames()) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | else: |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | self.channelCombo.setEnabled(False) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | |
2234
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
194 | def getNetworkChannels(self): |
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
195 | """ |
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
196 | Public method to get the list of channels associated with the |
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
197 | selected network. |
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
198 | |
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
199 | @return associated channels (list of IrcChannel) |
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
200 | """ |
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
201 | networkName = self.networkCombo.currentText() |
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
202 | network = self.__manager.getNetwork(networkName) |
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
203 | return network.getChannels() |
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
204 | |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | @pyqtSlot(str) |
2253
7ba2af1ff785
Implemented support for the WHO command and the auto user status update function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2252
diff
changeset
|
206 | def on_nickCombo_currentIndexChanged(self, nick=""): |
2227
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | Private slot to use another nick name. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | @param nick nick name to use (string) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | if self.__connected: |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | self.nickChanged.emit(self.nickCombo.currentText()) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | def getNickname(self): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | Public method to get the currently selected nick name. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | @return selected nick name (string) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | return self.nickCombo.currentText() |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | def setNickName(self, nick): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | Public slot to set the nick name in use. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | @param nick nick name in use (string) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | self.nickCombo.blockSignals(True) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | self.nickCombo.setEditText(nick) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | self.nickCombo.blockSignals(False) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | def addMessage(self, msg): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | Public method to add a message. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | @param msg message to be added (string) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | s = '<font color="{0}">{1} {2}</font>'.format( |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | Preferences.getIrc("NetworkMessageColour"), |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | ircTimestamp(), |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | msg |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | ) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | self.messages.append(s) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | def addServerMessage(self, msgType, msg, filterMsg=True): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | Public method to add a server message. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | @param msgType txpe of the message (string) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | @param msg message to be added (string) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | @keyparam filterMsg flag indicating to filter the message (boolean) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | if filterMsg: |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | msg = ircFilter(msg) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | s = '<font color="{0}">{1} <b>[</b>{2}<b>]</b> {3}</font>'.format( |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | Preferences.getIrc("ServerMessageColour"), |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | ircTimestamp(), |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | msgType, |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | msg |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | ) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | self.messages.append(s) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | def addErrorMessage(self, msgType, msg): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | Public method to add an error message. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | @param msgType txpe of the message (string) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | @param msg message to be added (string) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | s = '<font color="{0}">{1} <b>[</b>{2}<b>]</b> {3}</font>'.format( |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | Preferences.getIrc("ErrorMessageColour"), |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | ircTimestamp(), |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | msgType, |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | msg |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | ) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | self.messages.append(s) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | def setConnected(self, connected): |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | Public slot to set the connection state. |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | @param connected flag indicating the connection state (boolean) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | """ |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | self.__connected = connected |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | if self.__connected: |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | self.connectButton.setIcon(UI.PixmapCache.getIcon("ircDisconnect.png")) |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | else: |
b7aceb255831
First commit of the simple IRC client for eric. It is usable but not yet complete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | self.connectButton.setIcon(UI.PixmapCache.getIcon("ircConnect.png")) |
2532
f9500e2d2a8d
Fixed another situation in the IRC widget, that could cause a stack trace.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2525
diff
changeset
|
290 | |
f9500e2d2a8d
Fixed another situation in the IRC widget, that could cause a stack trace.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2525
diff
changeset
|
291 | def isConnected(self): |
f9500e2d2a8d
Fixed another situation in the IRC widget, that could cause a stack trace.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2525
diff
changeset
|
292 | """ |
f9500e2d2a8d
Fixed another situation in the IRC widget, that could cause a stack trace.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2525
diff
changeset
|
293 | Public method to check, if the network is connected. |
2234
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
294 | |
2532
f9500e2d2a8d
Fixed another situation in the IRC widget, that could cause a stack trace.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2525
diff
changeset
|
295 | @return flag indicating a connected network (boolean) |
f9500e2d2a8d
Fixed another situation in the IRC widget, that could cause a stack trace.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2525
diff
changeset
|
296 | """ |
f9500e2d2a8d
Fixed another situation in the IRC widget, that could cause a stack trace.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2525
diff
changeset
|
297 | return self.__connected |
f9500e2d2a8d
Fixed another situation in the IRC widget, that could cause a stack trace.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2525
diff
changeset
|
298 | |
2244
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
299 | def setRegistered(self, registered): |
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
300 | """ |
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
301 | Public slot to set the registered state. |
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
302 | |
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
303 | @param connected flag indicating the connection state (boolean) |
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
304 | """ |
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
305 | self.__registered = registered |
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
306 | on = bool(self.channelCombo.currentText()) and self.__registered |
2234
1e33501a0d33
Continued with IRC management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2232
diff
changeset
|
307 | self.joinButton.setEnabled(on) |
2244
654aaddbc2b9
Added the messages marker stuff to the IRC widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2242
diff
changeset
|
308 | self.nickCombo.setEnabled(registered) |
2245
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
309 | self.awayButton.setEnabled(registered) |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
310 | if registered: |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
311 | self.awayButton.setIcon(UI.PixmapCache.getIcon("ircUserPresent.png")) |
cbddacb4bc2e
Added code to manually set the AWAY status.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2244
diff
changeset
|
312 | self.__away = False |
2252
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
313 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
314 | def __clearMessages(self): |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
315 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
316 | Private slot to clear the contents of the messages display. |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
317 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
318 | self.messages.clear() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
319 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
320 | def __copyMessages(self): |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
321 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
322 | Private slot to copy the selection of the messages display to the clipboard. |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
323 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
324 | self.messages.copy() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
325 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
326 | def __copyAllMessages(self): |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
327 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
328 | Private slot to copy the contents of the messages display to the clipboard. |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
329 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
330 | txt = self.messages.toPlainText() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
331 | if txt: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
332 | cb = QApplication.clipboard() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
333 | cb.setText(txt) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
334 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
335 | def __cutAllMessages(self): |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
336 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
337 | Private slot to cut the contents of the messages display to the clipboard. |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
338 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
339 | txt = self.messages.toPlainText() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
340 | if txt: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
341 | cb = QApplication.clipboard() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
342 | cb.setText(txt) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
343 | self.messages.clear() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
344 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
345 | def __saveMessages(self): |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
346 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
347 | Private slot to save the contents of the messages display. |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
348 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
349 | hasText = not self.messages.document().isEmpty() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
350 | if hasText: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
351 | if Utilities.isWindowsPlatform(): |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
352 | htmlExtension = "htm" |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
353 | else: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
354 | htmlExtension = "html" |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
355 | fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
356 | self, |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
357 | self.trUtf8("Save Messages"), |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
358 | "", |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
359 | self.trUtf8( |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
360 | "HTML Files (*.{0});;Text Files (*.txt);;All Files (*)").format( |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
361 | htmlExtension), |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
362 | None, |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
363 | E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
364 | if fname: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
365 | ext = QFileInfo(fname).suffix() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
366 | if not ext: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
367 | ex = selectedFilter.split("(*")[1].split(")")[0] |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
368 | if ex: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
369 | fname += ex |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
370 | ext = QFileInfo(fname).suffix() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
371 | if QFileInfo(fname).exists(): |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
372 | res = E5MessageBox.yesNo(self, |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
373 | self.trUtf8("Save Messages"), |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
374 | self.trUtf8("<p>The file <b>{0}</b> already exists." |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
375 | " Overwrite it?</p>").format(fname), |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
376 | icon=E5MessageBox.Warning) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
377 | if not res: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
378 | return |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
379 | fname = Utilities.toNativeSeparators(fname) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
380 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
381 | try: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
382 | if ext.lower() in ["htm", "html"]: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
383 | txt = self.messages.toHtml() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
384 | else: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
385 | txt = self.messages.toPlainText() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
386 | f = open(fname, "w", encoding="utf-8") |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
387 | f.write(txt) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
388 | f.close() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
389 | except IOError as err: |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
390 | E5MessageBox.critical(self, |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
391 | self.trUtf8("Error saving Messages"), |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
392 | self.trUtf8("""<p>The messages contents could not be written""" |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
393 | """ to <b>{0}</b></p><p>Reason: {1}</p>""")\ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
394 | .format(fname, str(err))) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
395 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
396 | def __initMessagesMenu(self): |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
397 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
398 | Private slot to initialize the context menu of the messages pane. |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
399 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
400 | self.__messagesMenu = QMenu(self) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
401 | self.__copyMessagesAct = \ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
402 | self.__messagesMenu.addAction( |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
403 | UI.PixmapCache.getIcon("editCopy.png"), |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
404 | self.trUtf8("Copy"), self.__copyMessages) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
405 | self.__messagesMenu.addSeparator() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
406 | self.__cutAllMessagesAct = \ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
407 | self.__messagesMenu.addAction( |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
408 | UI.PixmapCache.getIcon("editCut.png"), |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
409 | self.trUtf8("Cut all"), self.__cutAllMessages) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
410 | self.__copyAllMessagesAct = \ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
411 | self.__messagesMenu.addAction( |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
412 | UI.PixmapCache.getIcon("editCopy.png"), |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
413 | self.trUtf8("Copy all"), self.__copyAllMessages) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
414 | self.__messagesMenu.addSeparator() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
415 | self.__clearMessagesAct = \ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
416 | self.__messagesMenu.addAction( |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
417 | UI.PixmapCache.getIcon("editDelete.png"), |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
418 | self.trUtf8("Clear"), self.__clearMessages) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
419 | self.__messagesMenu.addSeparator() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
420 | self.__saveMessagesAct = \ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
421 | self.__messagesMenu.addAction( |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
422 | UI.PixmapCache.getIcon("fileSave.png"), |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
423 | self.trUtf8("Save"), self.__saveMessages) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
424 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
425 | self.on_messages_copyAvailable(False) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
426 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
427 | @pyqtSlot(bool) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
428 | def on_messages_copyAvailable(self, yes): |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
429 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
430 | Private slot to react to text selection/deselection of the messages edit. |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
431 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
432 | @param yes flag signaling the availability of selected text (boolean) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
433 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
434 | self.__copyMessagesAct.setEnabled(yes) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
435 | |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
436 | @pyqtSlot(QPoint) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
437 | def on_messages_customContextMenuRequested(self, pos): |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
438 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
439 | Private slot to show the context menu of the messages pane. |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
440 | """ |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
441 | enable = not self.messages.document().isEmpty() |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
442 | self.__cutAllMessagesAct.setEnabled(enable) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
443 | self.__copyAllMessagesAct.setEnabled(enable) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
444 | self.__saveMessagesAct.setEnabled(enable) |
1fc32bd13be3
Continued with the implementation of the simple IRC client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2246
diff
changeset
|
445 | self.__messagesMenu.popup(self.messages.mapToGlobal(pos)) |
2442
1dcfd570fa12
Fixed an issue in the IRC widget opening hyperlinks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
446 | |
1dcfd570fa12
Fixed an issue in the IRC widget opening hyperlinks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
447 | @pyqtSlot(QUrl) |
1dcfd570fa12
Fixed an issue in the IRC widget opening hyperlinks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
448 | def on_messages_anchorClicked(self, url): |
1dcfd570fa12
Fixed an issue in the IRC widget opening hyperlinks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
449 | """ |
1dcfd570fa12
Fixed an issue in the IRC widget opening hyperlinks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
450 | Private slot to open links in the default browser. |
1dcfd570fa12
Fixed an issue in the IRC widget opening hyperlinks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
451 | """ |
1dcfd570fa12
Fixed an issue in the IRC widget opening hyperlinks.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
452 | QDesktopServices.openUrl(url) |