28 """ |
28 """ |
29 def __init__(self, manager, identityName, parent=None): |
29 def __init__(self, manager, identityName, parent=None): |
30 """ |
30 """ |
31 Constructor |
31 Constructor |
32 |
32 |
33 @param manager reference to the IRC network manager object (IrcNetworkManager) |
33 @param manager reference to the IRC network manager object |
|
34 (IrcNetworkManager) |
34 @param identityName name of the identity to be selected (string) |
35 @param identityName name of the identity to be selected (string) |
35 @param parent reference to the parent widget (QWidget) |
36 @param parent reference to the parent widget (QWidget) |
36 """ |
37 """ |
37 super().__init__(parent) |
38 super().__init__(parent) |
38 self.setupUi(self) |
39 self.setupUi(self) |
42 self.renameButton.setIcon(UI.PixmapCache.getIcon("editRename.png")) |
43 self.renameButton.setIcon(UI.PixmapCache.getIcon("editRename.png")) |
43 self.deleteButton.setIcon(UI.PixmapCache.getIcon("minus.png")) |
44 self.deleteButton.setIcon(UI.PixmapCache.getIcon("minus.png")) |
44 self.nicknameAddButton.setIcon(UI.PixmapCache.getIcon("plus.png")) |
45 self.nicknameAddButton.setIcon(UI.PixmapCache.getIcon("plus.png")) |
45 self.nicknameDeleteButton.setIcon(UI.PixmapCache.getIcon("minus.png")) |
46 self.nicknameDeleteButton.setIcon(UI.PixmapCache.getIcon("minus.png")) |
46 self.nicknameUpButton.setIcon(UI.PixmapCache.getIcon("1uparrow.png")) |
47 self.nicknameUpButton.setIcon(UI.PixmapCache.getIcon("1uparrow.png")) |
47 self.nicknameDownButton.setIcon(UI.PixmapCache.getIcon("1downarrow.png")) |
48 self.nicknameDownButton.setIcon( |
|
49 UI.PixmapCache.getIcon("1downarrow.png")) |
48 |
50 |
49 self.__manager = manager |
51 self.__manager = manager |
50 |
52 |
51 self.__identities = self.__manager.getIdentities() |
53 self.__identities = self.__manager.getIdentities() |
52 self.__currentIdentity = None |
54 self.__currentIdentity = None |
84 |
86 |
85 def __updateIdentitiesButtons(self): |
87 def __updateIdentitiesButtons(self): |
86 """ |
88 """ |
87 Private slot to update the status of the identity related buttons. |
89 Private slot to update the status of the identity related buttons. |
88 """ |
90 """ |
89 enable = self.identitiesCombo.currentText() != IrcIdentity.DefaultIdentityDisplay |
91 enable = (self.identitiesCombo.currentText() != |
|
92 IrcIdentity.DefaultIdentityDisplay) |
90 self.renameButton.setEnabled(enable) |
93 self.renameButton.setEnabled(enable) |
91 self.deleteButton.setEnabled(enable) |
94 self.deleteButton.setEnabled(enable) |
92 |
95 |
93 @pyqtSlot(str) |
96 @pyqtSlot(str) |
94 def on_identitiesCombo_currentIndexChanged(self, identity): |
97 def on_identitiesCombo_currentIndexChanged(self, identity): |
138 if self.__currentIdentity is None: |
141 if self.__currentIdentity is None: |
139 return |
142 return |
140 |
143 |
141 # General Tab |
144 # General Tab |
142 self.__currentIdentity.setRealName(self.realnameEdit.text()) |
145 self.__currentIdentity.setRealName(self.realnameEdit.text()) |
143 self.__currentIdentity.setNickNames([self.nicknamesList.item(row).text() |
146 self.__currentIdentity.setNickNames( |
144 for row in range(self.nicknamesList.count())]) |
147 [self.nicknamesList.item(row).text() |
|
148 for row in range(self.nicknamesList.count())]) |
145 self.__currentIdentity.setServiceName(self.serviceEdit.text()) |
149 self.__currentIdentity.setServiceName(self.serviceEdit.text()) |
146 self.__currentIdentity.setPassword(self.passwordEdit.text()) |
150 self.__currentIdentity.setPassword(self.passwordEdit.text()) |
147 |
151 |
148 # Away Tab |
152 # Away Tab |
149 self.__currentIdentity.setRememberAwayPosition( |
153 self.__currentIdentity.setRememberAwayPosition( |
162 @return flag indicating a successful check (boolean) |
166 @return flag indicating a successful check (boolean) |
163 """ |
167 """ |
164 if self.nicknamesList.count() == 0: |
168 if self.nicknamesList.count() == 0: |
165 E5MessageBox.critical(self, |
169 E5MessageBox.critical(self, |
166 self.trUtf8("Edit Identity"), |
170 self.trUtf8("Edit Identity"), |
167 self.trUtf8("""The identity must contain at least one nick name.""")) |
171 self.trUtf8( |
|
172 """The identity must contain at least one nick name.""")) |
168 block = self.identitiesCombo.blockSignals(True) |
173 block = self.identitiesCombo.blockSignals(True) |
169 identity = self.__currentIdentity.getName() |
174 identity = self.__currentIdentity.getName() |
170 if identity == IrcIdentity.DefaultIdentityName: |
175 if identity == IrcIdentity.DefaultIdentityName: |
171 identity = IrcIdentity.DefaultIdentityDisplay |
176 identity = IrcIdentity.DefaultIdentityDisplay |
172 self.identitiesCombo.setCurrentIndex(self.identitiesCombo.findText(identity)) |
177 self.identitiesCombo.setCurrentIndex( |
|
178 self.identitiesCombo.findText(identity)) |
173 self.identitiesCombo.blockSignals(block) |
179 self.identitiesCombo.blockSignals(block) |
174 self.identityTabWidget.setCurrentIndex(0) |
180 self.identityTabWidget.setCurrentIndex(0) |
175 self.nicknameEdit.setFocus() |
181 self.nicknameEdit.setFocus() |
176 return False |
182 return False |
177 |
183 |
181 self.trUtf8("""The identity must have a real name.""")) |
187 self.trUtf8("""The identity must have a real name.""")) |
182 block = self.identitiesCombo.blockSignals(True) |
188 block = self.identitiesCombo.blockSignals(True) |
183 identity = self.__currentIdentity.getName() |
189 identity = self.__currentIdentity.getName() |
184 if identity == IrcIdentity.DefaultIdentityName: |
190 if identity == IrcIdentity.DefaultIdentityName: |
185 identity = IrcIdentity.DefaultIdentityDisplay |
191 identity = IrcIdentity.DefaultIdentityDisplay |
186 self.identitiesCombo.setCurrentIndex(self.identitiesCombo.findText(identity)) |
192 self.identitiesCombo.setCurrentIndex( |
|
193 self.identitiesCombo.findText(identity)) |
187 self.identitiesCombo.blockSignals(block) |
194 self.identitiesCombo.blockSignals(block) |
188 self.identityTabWidget.setCurrentIndex(0) |
195 self.identityTabWidget.setCurrentIndex(0) |
189 self.realnameEdit.setFocus() |
196 self.realnameEdit.setFocus() |
190 return False |
197 return False |
191 |
198 |
205 if ok: |
212 if ok: |
206 if name: |
213 if name: |
207 if name in self.__identities: |
214 if name in self.__identities: |
208 E5MessageBox.critical(self, |
215 E5MessageBox.critical(self, |
209 self.trUtf8("Add Identity"), |
216 self.trUtf8("Add Identity"), |
210 self.trUtf8("""An identity named <b>{0}</b> already exists.""" |
217 self.trUtf8( |
211 """ You must provide a different name.""").format( |
218 """An identity named <b>{0}</b> already exists.""" |
|
219 """ You must provide a different name.""").format( |
212 name)) |
220 name)) |
213 self.on_addButton_clicked() |
221 self.on_addButton_clicked() |
214 else: |
222 else: |
215 identity = IrcIdentity(name) |
223 identity = IrcIdentity(name) |
216 identity.setIdent(Utilities.getUserName()) |
224 identity.setIdent(Utilities.getUserName()) |
217 identity.setRealName(Utilities.getRealName()) |
225 identity.setRealName(Utilities.getRealName()) |
218 self.__identities[name] = identity |
226 self.__identities[name] = identity |
219 self.identitiesCombo.addItem(name) |
227 self.identitiesCombo.addItem(name) |
220 self.identitiesCombo.setCurrentIndex(self.identitiesCombo.count() - 1) |
228 self.identitiesCombo.setCurrentIndex( |
|
229 self.identitiesCombo.count() - 1) |
221 else: |
230 else: |
222 E5MessageBox.critical(self, |
231 E5MessageBox.critical(self, |
223 self.trUtf8("Add Identity"), |
232 self.trUtf8("Add Identity"), |
224 self.trUtf8("""The identity has to have a name.""")) |
233 self.trUtf8("""The identity has to have a name.""")) |
225 self.on_addButton_clicked() |
234 self.on_addButton_clicked() |
240 if ok: |
249 if ok: |
241 if name: |
250 if name: |
242 if name in self.__identities: |
251 if name in self.__identities: |
243 E5MessageBox.critical(self, |
252 E5MessageBox.critical(self, |
244 self.trUtf8("Copy Identity"), |
253 self.trUtf8("Copy Identity"), |
245 self.trUtf8("""An identity named <b>{0}</b> already exists.""" |
254 self.trUtf8( |
246 """ You must provide a different name.""").format( |
255 """An identity named <b>{0}</b> already exists.""" |
|
256 """ You must provide a different name.""").format( |
247 name)) |
257 name)) |
248 self.on_copyButton_clicked() |
258 self.on_copyButton_clicked() |
249 else: |
259 else: |
250 identity = copy.deepcopy(self.__currentIdentity) |
260 identity = copy.deepcopy(self.__currentIdentity) |
251 identity.setName(name) |
261 identity.setName(name) |
252 self.__identities[name] = identity |
262 self.__identities[name] = identity |
253 self.identitiesCombo.addItem(name) |
263 self.identitiesCombo.addItem(name) |
254 self.identitiesCombo.setCurrentIndex(self.identitiesCombo.count() - 1) |
264 self.identitiesCombo.setCurrentIndex( |
|
265 self.identitiesCombo.count() - 1) |
255 else: |
266 else: |
256 E5MessageBox.critical(self, |
267 E5MessageBox.critical(self, |
257 self.trUtf8("Copy Identity"), |
268 self.trUtf8("Copy Identity"), |
258 self.trUtf8("""The identity has to have a name.""")) |
269 self.trUtf8("""The identity has to have a name.""")) |
259 self.on_copyButton_clicked() |
270 self.on_copyButton_clicked() |
274 if ok and name != currentIdentity: |
285 if ok and name != currentIdentity: |
275 if name: |
286 if name: |
276 if name in self.__identities: |
287 if name in self.__identities: |
277 E5MessageBox.critical(self, |
288 E5MessageBox.critical(self, |
278 self.trUtf8("Rename Identity"), |
289 self.trUtf8("Rename Identity"), |
279 self.trUtf8("""An identity named <b>{0}</b> already exists.""" |
290 self.trUtf8( |
280 """ You must provide a different name.""").format( |
291 """An identity named <b>{0}</b> already exists.""" |
|
292 """ You must provide a different name.""").format( |
281 name)) |
293 name)) |
282 self.on_renameButton_clicked() |
294 self.on_renameButton_clicked() |
283 else: |
295 else: |
284 del self.__identities[currentIdentity] |
296 del self.__identities[currentIdentity] |
285 self.__currentIdentity.setName(name) |
297 self.__currentIdentity.setName(name) |
308 currentIdentity) |
320 currentIdentity) |
309 if inUse: |
321 if inUse: |
310 break |
322 break |
311 |
323 |
312 if inUse: |
324 if inUse: |
313 msg = self.trUtf8("""This identity is in use. If you remove it, the network""" |
325 msg = self.trUtf8( |
314 """ settings using it will fall back to the default""" |
326 """This identity is in use. If you remove it, the network""" |
315 """ identity. Should it be deleted anyway?""") |
327 """ settings using it will fall back to the default""" |
|
328 """ identity. Should it be deleted anyway?""") |
316 else: |
329 else: |
317 msg = self.trUtf8("""Do you really want to delete all information for""" |
330 msg = self.trUtf8( |
318 """ this identity?""") |
331 """Do you really want to delete all information for""" |
|
332 """ this identity?""") |
319 res = E5MessageBox.yesNo(self, |
333 res = E5MessageBox.yesNo(self, |
320 self.trUtf8("Delete Identity"), |
334 self.trUtf8("Delete Identity"), |
321 msg, |
335 msg, |
322 icon=E5MessageBox.Warning) |
336 icon=E5MessageBox.Warning) |
323 if res: |
337 if res: |
325 self.identitiesCombo.removeItem( |
339 self.identitiesCombo.removeItem( |
326 self.identitiesCombo.findText(currentIdentity)) |
340 self.identitiesCombo.findText(currentIdentity)) |
327 |
341 |
328 def __updateNicknameUpDownButtons(self): |
342 def __updateNicknameUpDownButtons(self): |
329 """ |
343 """ |
330 Private method to set the enabled state of the nick name up and down buttons. |
344 Private method to set the enabled state of the nick name up and |
|
345 down buttons. |
331 """ |
346 """ |
332 if len(self.nicknamesList.selectedItems()) == 0: |
347 if len(self.nicknamesList.selectedItems()) == 0: |
333 self.nicknameUpButton.setEnabled(False) |
348 self.nicknameUpButton.setEnabled(False) |
334 self.nicknameDownButton.setEnabled(False) |
349 self.nicknameDownButton.setEnabled(False) |
335 else: |
350 else: |
336 if self.nicknamesList.currentRow() == 0: |
351 if self.nicknamesList.currentRow() == 0: |
337 self.nicknameUpButton.setEnabled(False) |
352 self.nicknameUpButton.setEnabled(False) |
338 self.nicknameDownButton.setEnabled(True) |
353 self.nicknameDownButton.setEnabled(True) |
339 elif self.nicknamesList.currentRow() == self.nicknamesList.count() - 1: |
354 elif self.nicknamesList.currentRow() == \ |
|
355 self.nicknamesList.count() - 1: |
340 self.nicknameUpButton.setEnabled(True) |
356 self.nicknameUpButton.setEnabled(True) |
341 self.nicknameDownButton.setEnabled(False) |
357 self.nicknameDownButton.setEnabled(False) |
342 else: |
358 else: |
343 self.nicknameUpButton.setEnabled(True) |
359 self.nicknameUpButton.setEnabled(True) |
344 self.nicknameDownButton.setEnabled(True) |
360 self.nicknameDownButton.setEnabled(True) |