fix tabs, disable widgets during load/save, don't crash when there isn't any notes

This commit is contained in:
Romain Bignon 2011-12-04 11:26:57 +01:00
commit 3cd28382e8

View file

@ -349,6 +349,8 @@ class ContactNotes(QWidget):
self.weboob = weboob self.weboob = weboob
self.contact = contact self.contact = contact
self.ui.textEdit.setEnabled(False)
self.ui.saveButton.setEnabled(False)
self.process = QtDo(self.weboob, self._getNotes_cb, self._getNotes_eb) self.process = QtDo(self.weboob, self._getNotes_cb, self._getNotes_eb)
self.process.do('get_notes', self.contact.id, backends=(self.contact.backend,)) self.process.do('get_notes', self.contact.id, backends=(self.contact.backend,))
@ -356,14 +358,17 @@ class ContactNotes(QWidget):
def _getNotes_cb(self, backend, data): def _getNotes_cb(self, backend, data):
if not backend: if not backend or not data:
self.process = None self.process = None
self.ui.textEdit.setEnabled(True)
self.ui.saveButton.setEnabled(True)
return return
self.ui.textEdit.setText(data) self.ui.textEdit.setText(data)
def _getNotes_eb(self, backend, error, backtrace): def _getNotes_eb(self, backend, error, backtrace):
self.ui.textEdit.setEnabled(True)
self.ui.saveButton.setEnabled(True)
content = unicode(self.tr('Unable to load notes:\n%s\n')) % to_unicode(error) content = unicode(self.tr('Unable to load notes:\n%s\n')) % to_unicode(error)
if logging.root.level == logging.DEBUG: if logging.root.level == logging.DEBUG:
content += '\n%s\n' % to_unicode(backtrace) content += '\n%s\n' % to_unicode(backtrace)
@ -372,14 +377,20 @@ class ContactNotes(QWidget):
def saveNotes(self): def saveNotes(self):
text = unicode(self.ui.textEdit.toPlainText()) text = unicode(self.ui.textEdit.toPlainText())
self.ui.saveButton.setEnabled(False)
self.ui.textEdit.setEnabled(False)
self.process = QtDo(self.weboob, self._saveNotes_cb, self._saveNotes_eb) self.process = QtDo(self.weboob, self._saveNotes_cb, self._saveNotes_eb)
self.process.do('save_notes', self.contact.id, text, backends=(self.contact.backend,)) self.process.do('save_notes', self.contact.id, text, backends=(self.contact.backend,))
def _saveNotes_cb(self, backend, data): def _saveNotes_cb(self, backend, data):
self.ui.saveButton.setEnabled(True)
self.ui.textEdit.setEnabled(True)
pass pass
def _saveNotes_eb(self, backend, error, backtrace): def _saveNotes_eb(self, backend, error, backtrace):
self.ui.saveButton.setEnabled(True)
self.ui.textEdit.setEnabled(True)
content = unicode(self.tr('Unable to save notes:\n%s\n')) % to_unicode(error) content = unicode(self.tr('Unable to save notes:\n%s\n')) % to_unicode(error)
if logging.root.level == logging.DEBUG: if logging.root.level == logging.DEBUG:
content += '\n%s\n' % to_unicode(backtrace) content += '\n%s\n' % to_unicode(backtrace)