Preferences/ConfigurationPages/IrcPage.py

changeset 2230
2b1b9265156c
parent 2229
78539385a8df
child 2243
c0323a43d966
equal deleted inserted replaced
2229:78539385a8df 2230:2b1b9265156c
4 # 4 #
5 5
6 """ 6 """
7 Module implementing the IRC configuration page. 7 Module implementing the IRC configuration page.
8 """ 8 """
9
10 from PyQt4.QtCore import pyqtSlot
11 9
12 from .ConfigurationPageBase import ConfigurationPageBase 10 from .ConfigurationPageBase import ConfigurationPageBase
13 from .Ui_IrcPage import Ui_IrcPage 11 from .Ui_IrcPage import Ui_IrcPage
14 12
15 import Preferences 13 import Preferences
32 self.setObjectName("IrcPage") 30 self.setObjectName("IrcPage")
33 31
34 self.timeFormatCombo.addItems(IrcPage.TimeFormats) 32 self.timeFormatCombo.addItems(IrcPage.TimeFormats)
35 self.dateFormatCombo.addItems(IrcPage.DateFormats) 33 self.dateFormatCombo.addItems(IrcPage.DateFormats)
36 34
37 self.ircColours = {}
38
39 # set initial values 35 # set initial values
40 # timestamps 36 # timestamps
41 self.timestampGroup.setChecked(Preferences.getIrc("ShowTimestamps")) 37 self.timestampGroup.setChecked(Preferences.getIrc("ShowTimestamps"))
42 self.showDateCheckBox.setChecked(Preferences.getIrc("TimestampIncludeDate")) 38 self.showDateCheckBox.setChecked(Preferences.getIrc("TimestampIncludeDate"))
43 self.timeFormatCombo.setCurrentIndex( 39 self.timeFormatCombo.setCurrentIndex(
44 self.timeFormatCombo.findText(Preferences.getIrc("TimeFormat"))) 40 self.timeFormatCombo.findText(Preferences.getIrc("TimeFormat")))
45 self.dateFormatCombo.setCurrentIndex( 41 self.dateFormatCombo.setCurrentIndex(
46 self.dateFormatCombo.findText(Preferences.getIrc("DateFormat"))) 42 self.dateFormatCombo.findText(Preferences.getIrc("DateFormat")))
47 43
48 # colours 44 # colours
49 # TODO: convert this to the code style below 45 self.initColour("NetworkMessageColour", self.networkButton,
50 self.ircColours["NetworkMessageColour"] = \ 46 Preferences.getIrc, byName=True)
51 self.initColour("NetworkMessageColour", self.networkButton, 47 self.initColour("ServerMessageColour", self.serverButton,
52 Preferences.getIrc) 48 Preferences.getIrc, byName=True)
53 self.ircColours["ServerMessageColour"] = \ 49 self.initColour("ErrorMessageColour", self.errorButton,
54 self.initColour("ServerMessageColour", self.serverButton, 50 Preferences.getIrc, byName=True)
55 Preferences.getIrc) 51 self.initColour("TimestampColour", self.timestampButton,
56 self.ircColours["ErrorMessageColour"] = \ 52 Preferences.getIrc, byName=True)
57 self.initColour("ErrorMessageColour", self.errorButton, 53 self.initColour("HyperlinkColour", self.hyperlinkButton,
58 Preferences.getIrc) 54 Preferences.getIrc, byName=True)
59 self.ircColours["TimestampColour"] = \ 55 self.initColour("ChannelMessageColour", self.channelButton,
60 self.initColour("TimestampColour", self.timestampButton, 56 Preferences.getIrc, byName=True)
61 Preferences.getIrc) 57 self.initColour("OwnNickColour", self.ownNickButton,
62 self.ircColours["HyperlinkColour"] = \ 58 Preferences.getIrc, byName=True)
63 self.initColour("HyperlinkColour", self.hyperlinkButton, 59 self.initColour("NickColour", self.nickButton,
64 Preferences.getIrc) 60 Preferences.getIrc, byName=True)
65 self.ircColours["ChannelMessageColour"] = \ 61 self.initColour("JoinChannelColour", self.joinButton,
66 self.initColour("ChannelMessageColour", self.channelButton, 62 Preferences.getIrc, byName=True)
67 Preferences.getIrc) 63 self.initColour("LeaveChannelColour", self.leaveButton,
68 self.ircColours["OwnNickColour"] = \ 64 Preferences.getIrc, byName=True)
69 self.initColour("OwnNickColour", self.ownNickButton, 65 self.initColour("ChannelInfoColour", self.infoButton,
70 Preferences.getIrc) 66 Preferences.getIrc, byName=True)
71 self.ircColours["NickColour"] = \
72 self.initColour("NickColour", self.nickButton,
73 Preferences.getIrc)
74 self.ircColours["JoinChannelColour"] = \
75 self.initColour("JoinChannelColour", self.joinButton,
76 Preferences.getIrc)
77 self.ircColours["LeaveChannelColour"] = \
78 self.initColour("LeaveChannelColour", self.leaveButton,
79 Preferences.getIrc)
80 self.ircColours["ChannelInfoColour"] = \
81 self.initColour("ChannelInfoColour", self.infoButton,
82 Preferences.getIrc)
83 67
84 # notifications 68 # notifications
85 self.notificationsGroup.setChecked(Preferences.getIrc("ShowNotifications")) 69 self.notificationsGroup.setChecked(Preferences.getIrc("ShowNotifications"))
86 self.joinLeaveCheckBox.setChecked(Preferences.getIrc("NotifyJoinPart")) 70 self.joinLeaveCheckBox.setChecked(Preferences.getIrc("NotifyJoinPart"))
87 self.messageCheckBox.setChecked(Preferences.getIrc("NotifyMessage")) 71 self.messageCheckBox.setChecked(Preferences.getIrc("NotifyMessage"))
88 self.ownNickCheckBox.setChecked(Preferences.getIrc("NotifyNick")) 72 self.ownNickCheckBox.setChecked(Preferences.getIrc("NotifyNick"))
89 73
90 # IRC text colors 74 # IRC text colors
91 # TODO: optimize further: put colour dict and select slot in base class 75 self.initColour("IrcColor0", self.ircColor0Button,
92 self.initColour2(self.ircColours, "IrcColor0", self.ircColor0Button, 76 Preferences.getIrc, byName=True)
93 Preferences.getIrc, self.__selectColour) 77 self.initColour("IrcColor1", self.ircColor1Button,
94 self.initColour2(self.ircColours, "IrcColor1", self.ircColor1Button, 78 Preferences.getIrc, byName=True)
95 Preferences.getIrc, self.__selectColour) 79 self.initColour("IrcColor2", self.ircColor2Button,
96 self.initColour2(self.ircColours, "IrcColor2", self.ircColor2Button, 80 Preferences.getIrc, byName=True)
97 Preferences.getIrc, self.__selectColour) 81 self.initColour("IrcColor3", self.ircColor3Button,
98 self.initColour2(self.ircColours, "IrcColor3", self.ircColor3Button, 82 Preferences.getIrc, byName=True)
99 Preferences.getIrc, self.__selectColour) 83 self.initColour("IrcColor4", self.ircColor4Button,
100 self.initColour2(self.ircColours, "IrcColor4", self.ircColor4Button, 84 Preferences.getIrc, byName=True)
101 Preferences.getIrc, self.__selectColour) 85 self.initColour("IrcColor5", self.ircColor5Button,
102 self.initColour2(self.ircColours, "IrcColor5", self.ircColor5Button, 86 Preferences.getIrc, byName=True)
103 Preferences.getIrc, self.__selectColour) 87 self.initColour("IrcColor6", self.ircColor6Button,
104 self.initColour2(self.ircColours, "IrcColor6", self.ircColor6Button, 88 Preferences.getIrc, byName=True)
105 Preferences.getIrc, self.__selectColour) 89 self.initColour("IrcColor7", self.ircColor7Button,
106 self.initColour2(self.ircColours, "IrcColor7", self.ircColor7Button, 90 Preferences.getIrc, byName=True)
107 Preferences.getIrc, self.__selectColour) 91 self.initColour("IrcColor8", self.ircColor8Button,
108 self.initColour2(self.ircColours, "IrcColor8", self.ircColor8Button, 92 Preferences.getIrc, byName=True)
109 Preferences.getIrc, self.__selectColour) 93 self.initColour("IrcColor9", self.ircColor9Button,
110 self.initColour2(self.ircColours, "IrcColor9", self.ircColor9Button, 94 Preferences.getIrc, byName=True)
111 Preferences.getIrc, self.__selectColour) 95 self.initColour("IrcColor10", self.ircColor10Button,
112 self.initColour2(self.ircColours, "IrcColor10", self.ircColor10Button, 96 Preferences.getIrc, byName=True)
113 Preferences.getIrc, self.__selectColour) 97 self.initColour("IrcColor11", self.ircColor11Button,
114 self.initColour2(self.ircColours, "IrcColor11", self.ircColor11Button, 98 Preferences.getIrc, byName=True)
115 Preferences.getIrc, self.__selectColour) 99 self.initColour("IrcColor12", self.ircColor12Button,
116 self.initColour2(self.ircColours, "IrcColor12", self.ircColor12Button, 100 Preferences.getIrc, byName=True)
117 Preferences.getIrc, self.__selectColour) 101 self.initColour("IrcColor13", self.ircColor13Button,
118 self.initColour2(self.ircColours, "IrcColor13", self.ircColor13Button, 102 Preferences.getIrc, byName=True)
119 Preferences.getIrc, self.__selectColour) 103 self.initColour("IrcColor14", self.ircColor14Button,
120 self.initColour2(self.ircColours, "IrcColor14", self.ircColor14Button, 104 Preferences.getIrc, byName=True)
121 Preferences.getIrc, self.__selectColour) 105 self.initColour("IrcColor15", self.ircColor15Button,
122 self.initColour2(self.ircColours, "IrcColor15", self.ircColor15Button, 106 Preferences.getIrc, byName=True)
123 Preferences.getIrc, self.__selectColour)
124 107
125 def save(self): 108 def save(self):
126 """ 109 """
127 Public slot to save the IRC configuration. 110 Public slot to save the IRC configuration.
128 """ 111 """
137 Preferences.setIrc("NotifyJoinPart", self.joinLeaveCheckBox.isChecked()) 120 Preferences.setIrc("NotifyJoinPart", self.joinLeaveCheckBox.isChecked())
138 Preferences.setIrc("NotifyMessage", self.messageCheckBox.isChecked()) 121 Preferences.setIrc("NotifyMessage", self.messageCheckBox.isChecked())
139 Preferences.setIrc("NotifyNick", self.ownNickCheckBox.isChecked()) 122 Preferences.setIrc("NotifyNick", self.ownNickCheckBox.isChecked())
140 123
141 # colours 124 # colours
142 for key in self.ircColours: 125 self.saveColours(Preferences.setIrc)
143 Preferences.setIrc(key, self.ircColours[key].name())
144
145 @pyqtSlot()
146 def on_networkButton_clicked(self):
147 """
148 Private slot to set the color for network messages.
149 """
150 self.ircColours["NetworkMessageColour"] = \
151 self.selectColour(self.networkButton,
152 self.ircColours["NetworkMessageColour"])
153
154 @pyqtSlot()
155 def on_nickButton_clicked(self):
156 """
157 Private slot to set the color for nick names.
158 """
159 self.ircColours["NickColour"] = \
160 self.selectColour(self.nickButton,
161 self.ircColours["NickColour"])
162
163 @pyqtSlot()
164 def on_serverButton_clicked(self):
165 """
166 Private slot to set the color for server messages.
167 """
168 self.ircColours["ServerMessageColour"] = \
169 self.selectColour(self.serverButton,
170 self.ircColours["ServerMessageColour"])
171
172 @pyqtSlot()
173 def on_ownNickButton_clicked(self):
174 """
175 Private slot to set the color for own nick name.
176 """
177 self.ircColours["OwnNickColour"] = \
178 self.selectColour(self.ownNickButton,
179 self.ircColours["OwnNickColour"])
180
181 @pyqtSlot()
182 def on_channelButton_clicked(self):
183 """
184 Private slot to set the color for channel messages.
185 """
186 self.ircColours["ChannelMessageColour"] = \
187 self.selectColour(self.channelButton,
188 self.ircColours["ChannelMessageColour"])
189
190 @pyqtSlot()
191 def on_joinButton_clicked(self):
192 """
193 Private slot to set the color for join events.
194 """
195 self.ircColours["JoinChannelColour"] = \
196 self.selectColour(self.joinButton,
197 self.ircColours["JoinChannelColour"])
198
199 @pyqtSlot()
200 def on_errorButton_clicked(self):
201 """
202 Private slot to set the color for error messages.
203 """
204 self.ircColours["ErrorMessageColour"] = \
205 self.selectColour(self.errorButton,
206 self.ircColours["ErrorMessageColour"])
207
208 @pyqtSlot()
209 def on_leaveButton_clicked(self):
210 """
211 Private slot to set the color for leave events.
212 """
213 self.ircColours["LeaveChannelColour"] = \
214 self.selectColour(self.leaveButton,
215 self.ircColours["LeaveChannelColour"])
216
217 @pyqtSlot()
218 def on_timestampButton_clicked(self):
219 """
220 Private slot to set the color for timestamps.
221 """
222 self.ircColours["TimestampColour"] = \
223 self.selectColour(self.timestampButton,
224 self.ircColours["TimestampColour"])
225
226 @pyqtSlot()
227 def on_infoButton_clicked(self):
228 """
229 Private slot to set the color for info messages.
230 """
231 self.ircColours["ChannelInfoColour"] = \
232 self.selectColour(self.infoButton,
233 self.ircColours["ChannelInfoColour"])
234
235 @pyqtSlot()
236 def on_hyperlinkButton_clicked(self):
237 """
238 Private slot to set the color for hyperlinks.
239 """
240 self.ircColours["HyperlinkColour"] = \
241 self.selectColour(self.hyperlinkButton,
242 self.ircColours["HyperlinkColour"])
243
244 @pyqtSlot()
245 def __selectColour(self):
246 """
247 Private slot to select a color.
248 """
249 button = self.sender()
250 colorKey = button.property("colorName")
251 self.ircColours[colorKey] = self.selectColour(
252 button, self.ircColours[colorKey])
253 126
254 127
255 def create(dlg): 128 def create(dlg):
256 """ 129 """
257 Module function to create the configuration page. 130 Module function to create the configuration page.

eric ide

mercurial