Network/IRC/IrcIdentitiesEditDialog.py

changeset 2992
dbdf27746da5
parent 2960
9453efa25fd5
child 3020
542e97d4ecb3
child 3057
10516539f238
equal deleted inserted replaced
2991:226481ff40d1 2992:dbdf27746da5
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)

eric ide

mercurial