def __edit_selected(self, widget, data=None): """Edit selected entry in keyring""" selection = self._list.get_selection() item_list, selected_iter = selection.get_selected() # show error if no entry is selected if selected_iter is None: dialog = gtk.MessageDialog( self._window, gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_WARNING, gtk.BUTTONS_OK, _('Please select an entry to change!') ) dialog.run() dialog.destroy() return True dialog = PasswordDialog(self._window) dialog.set_title(_('Change password')) dialog.set_label(_('Enter new password for selected keyring entry.')) response = dialog.get_response() if response[0] == gtk.RESPONSE_OK: if response[1] == response[2]: # passwords match, change value item_id = item_list.get_value(selected_iter, Column.ID) self._application.keyring_manager.change_secret(item_id, response[1]) dialog = gtk.MessageDialog( self._window, gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, _('Password was changed!') ) dialog.run() dialog.destroy() # refresh list self.__populate_list() else: # passwords don't match, notify user dialog = gtk.MessageDialog( self._window, gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, _('Passwords do not match! Please try again.') ) dialog.run() dialog.destroy() return True